0:00:00welcome to under the radar or show about
0:00:02independent app development I'm Marco
0:00:04Arment and I'm David Smith under the
0:00:06radar is never long within 30 minutes so
0:00:08let's get started
0:00:09so this week we wanted to talk about how
0:00:12you can be kind of like us independent
0:00:14developers who work for yourself without
0:00:16having a full-time designer or trying to
0:00:19minimize how much of a designers time
0:00:21you need because oftentimes people who
0:00:24are working for themselves can't afford
0:00:27a full-time designer or much design at
0:00:29all from up from other people and
0:00:31sometimes even when you can afford it if
0:00:33you're working on on like a small app or
0:00:36you need to get something out quickly or
0:00:37you're not sure of the market of
0:00:39something you often want to keep your
0:00:41expenses on that app very low and it's
0:00:43often hard to justify having a full-time
0:00:46designer or or having lots of hours from
0:00:48a contract designer helping you out
0:00:50there so we kind of wanted to talk about
0:00:52the reality and process of being a
0:00:56programmer who kind of designs it kind
0:00:59of does your own design or and and
0:01:01having how that works out and then other
0:01:04things later on about things like how
0:01:05you can do programmatic style assets
0:01:07versus static assets in your apps so
0:01:10David what's what is your experience
0:01:12been with with design for your apps so I
0:01:15do most of the core design of my apps
0:01:21myself which is definitely it isn't it's
0:01:24a it's a mixed bag in terms of what that
0:01:26ends up doing but for the reasons you
0:01:29just outlined like I it's a hard thing
0:01:31to hire a designer
0:01:33especially I find refer like at the
0:01:36first app or like the first version of
0:01:37the app which is a little bit backwards
0:01:39in some ways but for the way that I make
0:01:40apps
0:01:41I never know if the app I'm making is
0:01:44going to be worth putting a lot of time
0:01:47and energy and resources into and so for
0:01:48a lot of my apps like the first version
0:01:50is just a couple weeks of work and like
0:01:53the concept of hiring a designer even
0:01:55just like the time overhead if you know
0:01:57like the cost aside if I could find a
0:01:59really inexpensive designer like the
0:02:01cost overhead in terms of time of going
0:02:03back and forth and trying to underlie
0:02:05k-- getting everybody on the same page
0:02:07and then waiting for the assets and
0:02:08doing all that like it doesn't work as
0:02:10well for me and so I tend to just sort
0:02:13of
0:02:13hope for the best and design things and
0:02:17you know the result is maybe it's a bit
0:02:19mixed but and what I find though is at
0:02:23least like once you get if you haven't
0:02:24once you have some experience designing
0:02:26apps like the core design questions I
0:02:29guess this would be the UX design I'm
0:02:32not really as familiar with the terms
0:02:33all the different like UI us don't email
0:02:35us and like graphic design maybe other
0:02:39three kinds of design I don't know like
0:02:41the making an app that sort of like
0:02:43works right and function is functional
0:02:45and intuitive that part I think I have a
0:02:48good handle on and I can make apps that
0:02:50do that they just tend to not be pretty
0:02:52and in general I found that people are
0:02:55pretty forgiving about things not being
0:02:56pretty they rather it be functional and
0:02:59so you can kind of get away with a lot
0:03:01more than you may otherwise have and
0:03:04definitely this has been a lot easier
0:03:05since people don't expect apps to be
0:03:07pixel perfect anymore like it's there
0:03:10was a time when it was really hard if
0:03:12you app didn't have like the crazy
0:03:13textures and everything is just aligned
0:03:15just so like you know right now you're
0:03:18building an app that has to be let's see
0:03:21it's pretty 4s sized iPhone 5 size
0:03:24iPhone 6 size iPhone 6 plus size then
0:03:29you have iPad you have 1x iPad and 2x
0:03:32iPad and iPad pro and so like it's your
0:03:36design has to scale to everything anyway
0:03:38and so you can be you can get away with
0:03:40that feel like in some ways a lot more
0:03:41because you're trying to design
0:03:43something more fluid anyway like in some
0:03:45ways it's more like a web design you
0:03:47know now whereas before it was this this
0:03:49very like texturally in graphically rich
0:03:52style in like the the iOS 6 and earlier
0:03:55days and and then since the iOS 7 style
0:03:59UI with you know all these clean flat
0:04:02colors and thin text everywhere and lots
0:04:04of white space I think it has shifted
0:04:06more into what Web Design kind of always
0:04:08was where you know you you because you
0:04:12have to design for so many screen sizes
0:04:14and be ready to adapt to new ones that
0:04:16might come out that we don't even know
0:04:17about yet now you you are kind of forced
0:04:19to make things simpler and more reliant
0:04:21on like text flow and stuff like that
0:04:24and and less about it these giant
0:04:27images and and also those your
0:04:29out-of-style now which has been such a
0:04:31huge benefit to people like us who don't
0:04:34have or can't afford full time design
0:04:37help it's been a huge boon for us yeah
0:04:41but I think of course it probably ends
0:04:43up with meaning that me we become much
0:04:45more reliant on I feel like there's a
0:04:48certain I don't really know where I
0:04:50learned these and I think you actually
0:04:51have a better handle on these some
0:04:53people ask you but like there's certain
0:04:55seem like there's a certain basic set of
0:04:57like rules about layout about how you
0:05:01structure like typography or the white
0:05:05space of a page and to make it like look
0:05:08right and when it isn't it at least at
0:05:11this point now I have enough of a sense
0:05:13of it like I don't necessarily know why
0:05:14it's wrong but I know it is wrong and I
0:05:17picked that up just as you go but like
0:05:19once you like it's more important in
0:05:21some ways because things aren't pixel
0:05:22perfect you just have these basic like
0:05:24elements of good design under your belt
0:05:27and this isn't I notice in all of your
0:05:29apps like as you've gone there always
0:05:30seems to have that nice clean sharp look
0:05:33where do you think you learned to do
0:05:35that well I mean there's these different
0:05:39parts of design right so there's like
0:05:41there's the the like graphical artistry
0:05:43part of it and that's things like
0:05:45textures things like designing like rich
0:05:47icons stuff like that that part I have
0:05:50never been good at and I probably never
0:05:52will be good at and I'm okay with that
0:05:54that part I'm happy to outsource and and
0:05:58pay whatever it takes to get you know a
0:06:00great app icon made you know if I need
0:06:02if the textures ever come back in style
0:06:04I hope they don't they probably
0:06:06eventually will and you know then I'll
0:06:09Karzai bridge when I come to it because
0:06:11that will basically drive my costs up
0:06:13substantially but it's alright you can
0:06:16just have retro apps that are without
0:06:18without texture you just be retro it'll
0:06:20be fine yeah it will always become an
0:06:22effect rather than this is what people
0:06:24do but you know I think you know so
0:06:28there's different parts of design the
0:06:29graphical stuff I really can't do but
0:06:31the rest of it as you mentioned like the
0:06:34you know the rest of what you you
0:06:35encounter are most apt design things
0:06:36like layout basic text and type
0:06:40agra fee you know spacing that I've just
0:06:44kind of slowly developed my own
0:06:46sensibilities for that over time by you
0:06:49know starting some of it started in web
0:06:51design but also just like just kind of
0:06:53paying attention and developing a feel
0:06:55for it over time which is totally
0:06:57unhelpful like that I know I recognize
0:06:59like if you're listening and trying to
0:07:01figure you know trying to answer the
0:07:02question of like how do I become
0:07:03familiar with the basics of design like
0:07:05I don't know I can't tell you that
0:07:07there's probably some decent books about
0:07:09it that are made for for this purpose
0:07:12I'll try to find them and put them the
0:07:13show notes if I if I can but I I just I
0:07:17haven't gone that pad I've just kind of
0:07:18slowly developed a sensibility by just
0:07:20like kind of paying attention to
0:07:22designers and to design even though I'm
0:07:25I've never really been trained as a
0:07:26designer or consider myself one and a
0:07:29lot of it is just like kind of like you
0:07:31know what when you see it you know like
0:07:32when when you lay something out in a way
0:07:35that is visually pleasing like you
0:07:38yourself will notice that this looks
0:07:40good
0:07:40in most case you know like it because
0:07:43you are also a Burres and you were also
0:07:44a user of this app so you kind of like
0:07:47play with it following some basic
0:07:50principles you can kind of play with it
0:07:51and work it out until until it looks
0:07:53really good but what you said is also
0:07:54correct like people are very forgiving
0:07:56of this I mean god help you if you ever
0:07:59look up a screenshot of Instapaper 1.0
0:08:01it like it to some degree in many cases
0:08:06it doesn't matter as much as people
0:08:07think it does design is kind of like
0:08:10good marketing where it is really nice
0:08:13to have if you want if you if your app
0:08:16is going to become big and successful
0:08:18you probably need good design but you
0:08:22can you can you can get an app out there
0:08:24and you can start building a market for
0:08:26yourself without having professional
0:08:28quality design it is not it is not like
0:08:31a strict requirement for success and and
0:08:34in many cases in many markets especially
0:08:37like the the more narrow the market gets
0:08:39the more specialized or professional a
0:08:41market gets the less design is valued or
0:08:44the less it matters and so if you're
0:08:46making an app like you know for somebody
0:08:49to get their job done and you know it
0:08:51basically needs like four buttons and a
0:08:53text field
0:08:53you know that then like it doesn't
0:08:55really matter to a lot of it like it
0:08:57whether that's really pretty or not it's
0:08:59probably not going to affect your
0:09:01success in in in that narrow market as
0:09:03much as much as it would in like a mass
0:09:06consumer photography app say you know so
0:09:08it really depends on what you're making
0:09:09and how much this is worth but
0:09:11ultimately you know good design
0:09:13something that if you can do it you
0:09:14should do it and if you can't afford it
0:09:16you should do it in almost every case
0:09:19but that could be very expensive I mean
0:09:22like you know like hiring a professional
0:09:23designer could cost hundreds to
0:09:27thousands of dollars per day of their
0:09:29work and and it's really it can be it
0:09:33adds up so quickly it just just to get
0:09:36an app icon made you can get a an okay
0:09:40icon made for a few hundred dollars to
0:09:42get a great icon made might cost a few
0:09:44thousand dollars I mean again this it's
0:09:46this is big money we're talking about
0:09:47for for independent programmers like
0:09:50because most designers most of their
0:09:52work comes from corporate clients so so
0:09:55you have to build in all these high
0:09:56prices you have to you have to account
0:09:58for how much of a pain corporate clients
0:10:00are to deal with how much overhead
0:10:02you're going to have for every billable
0:10:03hour that you can actually get paid for
0:10:05you have to account for all that and
0:10:07price things accordingly whereas you
0:10:09know when you're independent hiring an
0:10:11iron your designer these prices are
0:10:13often out of reach so you know it does
0:10:15help to familiarize yourself with the
0:10:17basics of design or to hire a designer
0:10:19you know for for the stuff that really
0:10:22matters like your app icon and and you
0:10:25know maybe like a once-over if your main
0:10:27interface but not to have somebody that
0:10:29you're like paying every single day or
0:10:30every single month ongoing so it depends
0:10:34it depends a lot on the people you can
0:10:35find you know if you can find a great
0:10:37designer who will take on your work for
0:10:40a price you can afford great that's
0:10:42awesome
0:10:43you know but I I have found that to be
0:10:44very difficult most of the time myself
0:10:46yeah because I think the difficulty
0:10:48there is it's the best designers like
0:10:52are like if you're not paying them well
0:10:56then you they're kind of ripping them
0:10:57off like it's like right
0:10:59Vic that's the nature of like there
0:11:00really is like if they really are that
0:11:01good then they should be in some ways
0:11:04like they they should be we know well
0:11:06paid for their work and doing
0:11:07you know and doing that probably with
0:11:10both clients who can do it and so you
0:11:13end up with kind of a lot of you know
0:11:15for small independent apps you just
0:11:17doesn't yeah economics just don't tend
0:11:19to work out and in some ways you're
0:11:21probably better off
0:11:23it's like rather than spending that
0:11:25money on the design that design it's
0:11:29like I don't even know like training
0:11:30buying yourself books or spending the
0:11:32equivalent amount of time that you would
0:11:34have spent in money just trying to
0:11:37practice and get better at your but edit
0:11:39yourself because that's certainly a
0:11:40skill that isn't going to like go out of
0:11:44use or become useless to you that if you
0:11:46are effective here once you get having a
0:11:48stronger sense of design that's only
0:11:51going to help your programming that's no
0:11:52I'm not going to and ever come back to
0:11:55invite you to be like oh no now you know
0:11:56too much about design like your apps are
0:11:58getting worse like it's it's a good
0:12:00thing to invest in if you in like if you
0:12:02can afford it great but I mean you're my
0:12:05guess is you're probably then either
0:12:06working for a bigger company or I just
0:12:10somehow very wealthy I suppose yeah I
0:12:12mean you know you could you can look at
0:12:14it also as like you know can you afford
0:12:15any other kind of staffing or help like
0:12:17if you can afford to pay other
0:12:18programmers to be with you to to help
0:12:21make bigger and more complex apps then
0:12:24the cost of a designer relative to other
0:12:25programmers is very reasonable yeah but
0:12:28you know it but if you like if the idea
0:12:29of paying another programmer to help you
0:12:32out is completely out of reach because
0:12:33the economics aren't working out it's
0:12:35probably also going to be challenging to
0:12:37paid to pay a designer anyway in in much
0:12:41less expensive news we are sponsored
0:12:42this week by hover hover is quite simply
0:12:46the best way to buy and manage domain
0:12:48names and it costs way less than hiring
0:12:50a full-time programmer or designer now
0:12:52when you have an idea for a project
0:12:54naming it can be difficult once you
0:12:55finally get that name you want to be
0:12:57able to quickly and easily get the
0:12:58domains you need however provides a
0:13:00simple fast and hassle-free method of
0:13:02buying domain names it is very easy to
0:13:04search for new domains search for the
0:13:06means that are available you enter the
0:13:07phrase you want or some keywords if you
0:13:09don't know an exact name and they will
0:13:11find available matches for you and show
0:13:13you a list of all the crazy new TLDs
0:13:15that are available with that name they
0:13:16have of course you know the nice old
0:13:18ones ComNet and all the stuff but they
0:13:21also have all the
0:13:21crazy new ones dot Plumbing dot coffee
0:13:23dot sexy if you go that way all these
0:13:25TLDs they have recently lowered their
0:13:27prices on pretty much all of them
0:13:29so dot-com domains are now just 1299 a
0:13:32year and all this includes
0:13:34free who is privacy for all their
0:13:36domains they believe that you should not
0:13:38have to pay extra to keep your private
0:13:39information private and they have
0:13:41fantastic customer support if you ever
0:13:43need it hover offers a no hold no wait
0:13:45no trends for telephone support policy
0:13:47they are famous for this and there's a
0:13:49good reason why when you call them you
0:13:51talk to an actual human being there's no
0:13:53robots no menus but if you do prefer
0:13:55robotic communication they also have
0:13:56great support documents and guides on
0:13:58their website for getting everything you
0:13:59need as well as email support if you
0:14:01need that and I don't forget their hover
0:14:03valet service where if you want if you
0:14:05if you have a bunch of domain somewhere
0:14:06else or just even just one any number
0:14:09that means if somewhere else you want to
0:14:10transfer them over to hover they will if
0:14:12you want do the whole transfer for you
0:14:14because I've never met anybody who said
0:14:17you know what I love doing domain name
0:14:18registration transfers no not a single
0:14:20person ever wants to do that
0:14:22hover will do it for you if you want
0:14:23it's fantastic there's so much great
0:14:25stuff at hover check it out today go to
0:14:27hover comm to try them out use code
0:14:29Swift at checkout and you'll get 10% off
0:14:32your first purchase at hover comm and
0:14:33show your support for under the radar
0:14:35and all of real AFM thank you so much to
0:14:37hover use code Swift to check out for
0:14:3910% off thank you so much for sponsoring
0:14:41this episode
0:14:42alright so I think the next thing that
0:14:44we wanted to dive into a little bit is
0:14:47the something that I know I think I know
0:14:50you I've heard you talk a lot about this
0:14:52and it's something that I know I've
0:14:52started doing a lot more of my own apps
0:14:54is once you have your design and this is
0:14:57especially for the graphical assets in
0:14:59your app so like you know button icons
0:15:01or images of any kind like there's you
0:15:06can either pre render that image so it's
0:15:08like have it come out of Photoshop or
0:15:10illustrator or whatever design tool
0:15:12sketch whatever it is that you're using
0:15:14rendered out as a PNG put that PNG and
0:15:17well I will put all three of the PNG s
0:15:18like the 1 X the 2 X - 3 X version of
0:15:21that asset and add it to your project
0:15:23and bundle it in that way or you can
0:15:26programmatically generate it either as
0:15:29like in the draw rect of a uiview or
0:15:32generating an image that you put in a UI
0:15:34as you turn into a UI image and I know I
0:15:39think we've both been on the path
0:15:41towards less and less static assets and
0:15:44more and more programmatic assets and so
0:15:47it's probably something that's worth
0:15:48talking about some of the reasons why we
0:15:50do that oh yeah I mean like for me
0:15:52static assets are a liability for future
0:15:55work because anything any kind of image
0:15:58like you know it let's suppose I hire a
0:16:00designer to to make like toolbar icons
0:16:02in my out which I've done before and
0:16:03it's often worth doing
0:16:05so I have these toolbar icons and then
0:16:07Apple comes out says oh by the way you
0:16:10know there's gonna be a new iPad
0:16:11resolution it's now gonna be iPad at 3 X
0:16:13then you need new versions of those
0:16:15icons that can that can be rendered at
0:16:17Brendan at 3 X you can attempt to do it
0:16:20yourself
0:16:20but generally you won't have like a
0:16:23source vector file you will you will
0:16:25have like a stack of PNG so the designer
0:16:27gave you when you paid them 2 years ago
0:16:29and so you can try to make it or resize
0:16:33it yourself it'll probably look bad you
0:16:35probably shouldn't do that so oftentimes
0:16:37you have to then go back to the designer
0:16:39and pay for even more of their time for
0:16:41them to do something that's really very
0:16:42trivial that they probably don't even
0:16:43want to do because that's pretty pretty
0:16:45uninteresting work you know dig up old
0:16:47files and rerender or something out as a
0:16:49different resolution and everything so
0:16:51it's it's this kind of clunky procedure
0:16:54that like if you rely on the on
0:16:55graphical assets that are baked into
0:16:58static images you have all this
0:17:00liability whenever the technology
0:17:02changes under you or what if you just
0:17:03want to tweak the design like what if
0:17:05you want to make all the line widths you
0:17:08know half a pixel narrower in the next
0:17:10version of in the next design it that
0:17:12becomes very difficult if you if you're
0:17:14if you just have a bunch images and you
0:17:15have to like rerender all this assets
0:17:17out on the other hand if you have all
0:17:20those images and stuff there's a lot of
0:17:22upsides to that your app first of all
0:17:24will load faster because you won't have
0:17:26to be like drawing these things every
0:17:27time you know certain certain art styles
0:17:31are only really possible in static
0:17:33images and become pretty impractical to
0:17:35impossible to recreate with like quartz
0:17:38drawing commands in a draw rect function
0:17:41so the
0:17:43there are there are definitely advantage
0:17:44to disadvantages generally speaking
0:17:46programmatically generated images make
0:17:49your app bundle very small this is one
0:17:50of the reasons why overcast is only
0:17:51something like seven Meg's it's a very
0:17:54very small iPhone because I have almost
0:17:55no images in it almost everything that
0:17:57overcast is generated procedurally so it
0:18:00makes your Apple very small it makes it
0:18:02very easy to adapt to new devices and
0:18:04new sizes but it also but but static
0:18:06images almost certainly will load faster
0:18:08there's also like the OS will cache them
0:18:11any kind of like UI image image name to
0:18:14call like those kind of things that
0:18:15cache the GPU will cache certain things
0:18:17the framework for cache certain things
0:18:18so generally speaking for for speed of
0:18:22operation you want static images but for
0:18:26for ease of programmer work
0:18:29programmatically generated stuff can be
0:18:31a lot easier and I think the biggest
0:18:33thing too is with programmatic it's it's
0:18:36there's even like probably just the feel
0:18:38of like the philosophy of it of making
0:18:40sure that like what you're say the
0:18:42biggest thing that I think you're
0:18:43pointing out is if you're your art
0:18:46assets need to be right are ideally in
0:18:49some-some format that you're going to be
0:18:52able to scale and adjust and re-render
0:18:55later at the very least right if you if
0:18:59you are using a completely like if
0:19:01you're if you have a designer or even if
0:19:03you're in with yourself like if you're
0:19:04going to if you're just building things
0:19:07in such a way that you cannot just
0:19:09easily scale them up and down like
0:19:10keeping them having vector artwork in
0:19:14Photoshop or illustrator or sketch or
0:19:16doing it in some way like that that you
0:19:18can scale up and down it's yeah it's a
0:19:20ticking time bomb for at some point
0:19:21you're going to need something different
0:19:24like there was a time when we just had
0:19:261x everywhere and then there was 2x + 1
0:19:30X and then now there's 3x as well and
0:19:33like it's always going to change
0:19:35everything like the one of the few I
0:19:38don't know if we'll ever get to 4x but
0:19:40something else is going to happen like
0:19:42all of a sudden I for a long time I
0:19:43think I had the thought that the iPad
0:19:45was always going to be sort of 1024 by
0:19:48768 and we're hinge terms of functional
0:19:50size and it's like no turns out they're
0:19:52going cuz like when they went to the
0:19:53MIDI they kept the same resolution they
0:19:54just smushed it a bit
0:19:56and with a pro though it's like oh no
0:19:57here's this massive new screen and so
0:20:01it's like the most important thing is to
0:20:02be able to overtime
0:20:05really like update that have those
0:20:07assets be dynamic and to change over
0:20:10time whether that's like rendered in
0:20:11your app which like you were saying like
0:20:12sometimes that's good sometimes it's bad
0:20:14like it's some trade-offs but whatever
0:20:16it whatever form you're doing it in it
0:20:18needs to be something that you can very
0:20:20easily if all of a sudden it's like I
0:20:22need them at a different size even if
0:20:24it's not a different resolution even if
0:20:25it's just like you know I think the
0:20:27alignment on this isn't quite right I
0:20:29need to make it a bit smaller mm-hmm
0:20:31like being able to rent re-render that
0:20:33from source rather than taking the image
0:20:36and like resizing it which is always
0:20:38never going to look good like you need
0:20:40to be able to say like let's rerender
0:20:42this from the beginning
0:20:43within the exact dimensions that I want
0:20:46it to be and if you can do that like
0:20:48then your workflow is like good if you
0:20:51can't then you probably need to fix it
0:20:53because you it's yours waiting for at
0:20:55some point down the road it to come back
0:20:57and bite you yeah and even like there's
0:20:59like there's like a hybrid approach you
0:21:00can do here which i I've employed for my
0:21:02all my watch assets like some in some
0:21:04contexts in the OS or in the frameworks
0:21:07in some contexts you can't do a
0:21:09programmatic rendering of something you
0:21:11have to have an image in the app bundle
0:21:14with a certain name like you know so
0:21:15things like your launch icons like you
0:21:17your app icon just can't be programmatic
0:21:19in iOS today other things like in watch
0:21:23kit there in and watch iOS - I would
0:21:26imagine it's more flexible but in in
0:21:27watch kit you watch kit one many things
0:21:32had to be static images like there were
0:21:34there were certain things that
0:21:35everything had to be yeah right and so
0:21:38with overcast what I what I did like you
0:21:40know like my I have my like my my themed
0:21:42buttons that are that are in the app and
0:21:44those buttons are all generated by just
0:21:47calls to my one of my appearance manager
0:21:49functions that in my custom appearance
0:21:50class and you just specify how you know
0:21:55what size canvas to render this icon
0:21:57into and you know the line width and the
0:22:00color and you know some of them will
0:22:02display things like like the seek
0:22:04buttons that have the number of seconds
0:22:06inside of them that will be that will be
0:22:07seeked so on whatever
0:22:10like that's all customizable by the user
0:22:12and so like those buttons just you know
0:22:15like there's a function that just says
0:22:16you know render seek button at this size
0:22:18with this color this line with and with
0:22:20this number in the middle and the
0:22:22function has a text drawing call and it
0:22:24went you know in the middle of all these
0:22:25shapes and by the way paint code is a
0:22:27great app for for generating the code
0:22:29for any kind of non-trivial shape
0:22:30recommend that but then you know and
0:22:33then it just wraps it in like an image
0:22:34context where it just does it does a
0:22:36transform that scales it so you can I
0:22:38can render this image that you know the
0:22:40source is in like you know I'm 100 by
0:22:42100 great or whatever I set paint code
0:22:44to and then just scales that with CG
0:22:47code to to whatever output size you
0:22:50wanted it at and so when you have a
0:22:52context like watchkit where you you're
0:22:55required to have static images I have a
0:22:58special build mode that I can set the
0:22:59app in where it just generates the house
0:23:01for me hitting it in every in every
0:23:03configuration that that it might ever
0:23:04need with my current code so it
0:23:06literally just like calls that function
0:23:07and renders out static asset that I can
0:23:10that I can then include in the Hat
0:23:12bundle so that like that that kind of
0:23:14hybrid approach I think has a lot of
0:23:15advantages it is more complex it will
0:23:18not save any space in your app bundle
0:23:19but it will allow you to use these
0:23:22images in calls like like image named
0:23:25and in context where you need static
0:23:28images and it preserves all like the
0:23:30load time optimizations the caching
0:23:33optimization on the platform so the
0:23:34hybrid approach I think is worth
0:23:35considering but ultimately like I just I
0:23:39love doing things programmatically
0:23:40because I think you're right like it it
0:23:42feels more semantically right like if I
0:23:44have a graphic that is just like you
0:23:47know a circle with an arrow going into
0:23:49it like why does it need to be a bitmap
0:23:51file somewhere like why why can't that
0:23:54just be represented as vectors it seems
0:23:55as a programmer and I recognize this
0:23:58isn't how design works but it seems as a
0:24:00programmer that is like the most correct
0:24:02way to represent that it's by vectors
0:24:03and and that doesn't this isn't true for
0:24:06everything of course but so much of what
0:24:08we do today and then the current styles
0:24:10of interfaces that is true for and it
0:24:14just feels right you know it feels right
0:24:16to represent it as a function and and
0:24:18even in many ways like like I mentioned
0:24:20my scaling technique earlier with these
0:24:22with these function calls like
0:24:23a lot of times something really simple
0:24:25like drawing an X you know like an icon
0:24:27that's just like a big X or a plus sign
0:24:29like I would rat like I've rendered that
0:24:31in a you know in a 1.0 scale graph like
0:24:34it's you know one by one and it's
0:24:35alright render for me now draw a line
0:24:37from 0.5 to 0.5 you know like and then
0:24:40just render to any size like that that
0:24:41is actually easier and simpler to to
0:24:43write and to and to conceptualize than
0:24:46having 16 different PNG files that
0:24:50different thicknesses and everything and
0:24:52and sometimes you need the dynamism you
0:24:54know if you offer things like like if if
0:24:57the icon has to be right it has to be
0:24:59read in two different colors different
0:25:00fonts for any kind of embedded text
0:25:02different line thicknesses or if it's
0:25:05something that's being reflected in the
0:25:07UI that is some kind of dynamic element
0:25:09like you know if you have some kind of
0:25:11UI widget where you're showing progress
0:25:14you know do you actually want to render
0:25:15out a progress bar at a hundred
0:25:18different widths for all the different
0:25:21percentages or you know do you which I
0:25:22actually did for my watch app or you
0:25:26know or if you want to just have one
0:25:28that you can call a function and you can
0:25:30generate it at whatever value you need
0:25:32so in a different there's obviously
0:25:35different needs here in different
0:25:36situations usually I prefer to go
0:25:38programmatic wherever possible for Miami
0:25:40generation because usually the the
0:25:42downsides are either non-existent or
0:25:45very very small and the upsides are
0:25:47quite big and I think - one thing that I
0:25:49like about the more I've gotten into
0:25:52doing programmatic rendering is it keeps
0:25:55my it matches matches matches well with
0:25:58my ability so if I open Photoshop which
0:26:02I don't really have that much business
0:26:04getting into but like I can do a lot of
0:26:07stuff there that probably ultimately
0:26:09doesn't look very good like I can over
0:26:12design and try and be clever than I
0:26:15actually am whereas when I'm like
0:26:18writing it in either even in paint code
0:26:20or just like in core graphics calls like
0:26:22it limits in constrains me but I find to
0:26:26be a positive way that like I understand
0:26:29core graphics in a way that I don't
0:26:30understand Photoshop and so it's
0:26:33constructive for me to like okay I can
0:26:35only do of like
0:26:37ten drawing operations or whatever it is
0:26:39like you can do in court graphics like
0:26:40functionally it's like you can stroke a
0:26:42path you can fill a shape like there's a
0:26:44few basic things and so if I make my art
0:26:47assets align with that I'm probably not
0:26:50gonna like reach beyond what I'm
0:26:52actually capable of doing or is if I go
0:26:55into Photoshop and like oh I can do
0:26:56layer styles ooh that's pretty
0:26:58oh let me go into the sea or I can blur
0:27:00this over here like doing stuff that I
0:27:02have no business doing and so at least
0:27:04if I keep it as programmatic and simple
0:27:07then I'm not exceeding that and I
0:27:10understand it too like that's maybe
0:27:11another part of it like we're saying
0:27:13from the beginning of like if you're
0:27:14doing this all yourself
0:27:15like it's danger the dangerous things
0:27:19too in some ways is if you have if
0:27:22you're an external designer is making
0:27:24something for you that you have no way
0:27:26then of recreating or adjusting or
0:27:28adjusting or tweaking like I don't
0:27:30understand it then I can't change it
0:27:33really and that's just you know has
0:27:36definitely come back to bite me a few
0:27:38times where I just need to change
0:27:40something slightly and I can't because
0:27:43like it's a baked PNG and so it's like I
0:27:45just have to make do or I need to try
0:27:47and get back on my designers schedule to
0:27:49make a really smiter adjustment for them
0:27:51and work out the contracting for that
0:27:53like it's a night if it's nice and easy
0:27:55and understandable it's probably gonna
0:27:57be better down the road and I think so
0:28:00for me like this is where I'm heading
0:28:01like I very do very few static images
0:28:04anymore I tend to do a lot more
0:28:06programmatic things or at least storing
0:28:09my assets in a form that I can easily
0:28:12rerender and regenerate and I can look
0:28:15at on my kit I understand what that's
0:28:16doing like I see the lines drawing the
0:28:18shapes it's filling and like that makes
0:28:20sense to me yeah and and and the result
0:28:23of that usually isn't as good as what
0:28:26you can get with a pro designer sure but
0:28:28it's a kind of it's one of those things
0:28:29where like you can get like you know
0:28:31two-thirds of the way there for for a
0:28:35lot less cost and and with a lot of
0:28:37other benefits so like that isn't always
0:28:39worth it sometimes it is and and
0:28:41sometimes you don't have a choice so
0:28:43it's nice to be able to be able to to do
0:28:46to do the minimum required with the
0:28:49resources you have
0:28:51rather than being forced to go and spend
0:28:53a lot of money you don't have so it's
0:28:55it's good to have this option exactly
0:28:57alright that wraps it up for this week
0:28:59thanks a lot to our sponsor this week
0:29:01hover
0:29:02thanks a lot for all our listeners
0:29:03please do recommend us to friends and
0:29:05rate us on overcast and iTunes and
0:29:06everything and we will see you next week
0:29:08bye