Welcome to under the radar show about independent I O S F development. I'm mark armant. I am David smith.
Under the radar is usually not longer than thirty minutes, so let's get started.
So you've been very busy doing what appears to be a massive overhaul parameter plus plus um yes, what have you have been working on?
sure. So this is one of those projects where I started with, if something kind of basic in mind that and the project is kind of snowball, all slightly like i'm still waged in the core, what I was trying to the started off is I beginning of this year, I did a big update to put on your place. Plus this was my like, I completely rebuild the up and swig.
I did a whole bunch of changes to IT, added a iphone based workout tracking and a sort of a bunch of the of this big update to IT. But at the time, I only could only devote so much time to that update. And then that we see happen.
The summer happened. I send you my ability to finish IT to some degree, didn't quite happen. And this, specifically IT was the I was being frustrated that I would find myself using a couple of other hiking related apps for a very specific aspects of my hiking in a way that is like, I shouldn't using someone else is APP. I should be using my APP, like my APP is the best APP. I should make my APP to do these couple of functions.
And specifically, I wanted to be able to plan roots inside of the APP so that you can sort of visit, take a map and you tap on the way points you want to visit and IT comes up with a root and let you plan that inside of the APP and gives you you know start about IT know what's your elevation going be um how much how long should you expect the hike to take those kinds of things um and then I was also along with that, gonna have A A system to be able to Better manage your offline maps so that you can download a download the maps for particular area when you go all hiking. And those are the two main things. And then since then, IT is kind of exploded out into all of these little issues and little niggles in the back of my mind that i'm just like have been annoying me about the APP since I got that a bit up down you in the black spring.
And one of them was the like the visual design c APP. And this was one of these things where I think so often IT is hard to at some point you just like completely lose the forest and all you see the trees um when you're deep into an update and like this put on to update in the last ring, I was so deep into IT at some point I think you had been working on a flat three or four months, which is a long time for me. And I just lost perspective.
I guess, is this like this simple way? And I was looking at the design, and I was like, what was I thinking? Like so much of the stuff I had gotten into this path, where I was like rebuilding all kinds of these system controls completely from scratch.
I was doing with this hope my hole like super dynamic uh, type based system for font scaling in front metrix. And I was doing all the stuff because I was thought I was trying to make IT Better. And it's one of those like, six months later I come back to like this was this was a bad idea.
I I should not have been doing this that that so much of what I was doing was the part of the third order effect of some small choice that I made that turned out was like IT was not a bad choice, but it's like the C I didn't fully anticipate all of the knock on effects and all of the things that I would be missing out and up. And so like very short of that is i've essentially redesigned the entire of visually like structure. It's all the same and it's the kind of redesign which probably failure to say this a regin of the APP.
Like in many ways, when you're designing something like there's two parts to IT, there's the the except the structural like the you know like the rough carbon. If you are building a house, it's like you have the, where are the walls? Where are the where the floors? Where are the outlets? Like the big structural parts.
And then there's the like, what color is your paint and you what furnishings do you have? What our work you have on the wall? And is like, this was the latter part of I was able to dramatically, I think, improve the design and the appearance of the APP by just from pulling out all of these things that i've been doing in the APP that turned out, like all my custom, fancy, clever, like me, thinking I was being super cool, almost all of IT in retrospect, or like, no, this was not a good idea. And this is something that I was like, I need, I need to take the moment now while, I mean, here, while I have a little bit of time to just redo this and throw away a lot of that work and dive into some, you sort move forward in a much more stable, Better, reliable place.
Yeah like I notice, ed, that one of the themes that you've gone with with phenomenal design and and with this redesign that you're talking about is um leaning a lot more on the system opponents and and reading a lot more on system defauts styling defauts text sizes, default button layout ts and and you various basically closer matching the system style and this is something that i've gone through over over the years in in many different ways.
And this is why I thought this could be energy topic. Because, you know, what you've done here is you ve taken an old APP that you know, at the time that you made a lot of this stuff, the the system design choices were either different or in in some areas were kind of unspecified and whether now they have been changed or updated over time or certain things now have standard ways to do them where there wasn't really a standard established before. Um and so you have this interesting baLance of having to bring along both a code base of this this APP that obviously you're written most of IT by now.
But but you you're bringing along the p itself into a new era of design choices, but also you have to bring along the apps users into that era of design choices. And this is something that I always fine, terrifying, whatever I have to do IT because i've learned over time that anything I ever change about the way my APP looks um will get a large amount of feedback from the audience. And it's usually it's not all good and it's not all bad.
It's it's usually a nice healthy split. Uh, but if you if you change anything about an existing APP that has any number of users, really you're going to hear about IT and you're going to hear a lot of complaints as well as a lot of praise. But if you don't ever change the way in APP looks, then you'll start losing customers both potential and current because your apple beat will look old or will look somehow wrong compared to what they expect from system and kind of fashion norms of the day. So I think is interesting that you ve done this and and um but how do you like do you expect a lot of push back from the audience? How does that worked for you in the past?
Yeah and so I think it's been fascinating in some ways about this is like in the spring, I probably I fully experienced a lot of this where like my redesign from the old old version of parameter a plus plus, like the version that I wrote a like paramo plus, actually just had its like ten year anniversary. So like it's an old old, that it's been around you very, very early, even so much early. U, I IT not even just like modern U.
I. I like old U. I. Kit is where the apple is coming from. And so, and I think what i've found was, broadly, people liked the new design because I was bringing IT forward to some degree. I think the my new design had a lot of problems that are but i've been addressing now um but broadly, they IT was nice for to feel modern IT was nice for you to feel ah the APP was not getting older.
Crafty and like I think there is a certain feeling that you get if something is you doing things in the way that was stylish five years ago, uh that eventually makes the APP feel out of date even if IT still works fine. He was like, it's have been maintaining patongo ter plus plus regularly ever since. It's not like IT hadn't been had been neglected.
But there are certain things about the way that you structure things just via visual, but like a language and style of IT, like the accent that the APP Carries with IT is something that can feel old and dated at some point. And I think that was very much what I felt. And I got, I was, say, broadly, mostly good response to people being like, it's they they like the fresh look. And that's a good thing.
There are certain people who like I like IT the old way um and I think the more time i've had to look at that, a lot of IT was the the people who were saying you'd like to Better the old way like that is the simple way for them to express I changed or move something in a way that I made them feel foolish because IT confused them now um and it's like they want to go back to the old way now because the old way was Better but because they knew how to use the old way because the old way they had become sort and they developed expertise in the old way of doing IT and I had was keep forcing them to relearn that expertise and so for my perspective, IT was definitely an element of trying to do as many things as I can to help bridge the old and the new design so that there is a path that they can still feel like they mean they can use the expertise they're built that i'm not changing things for changes sake. I'm not intentionally trying to make things hard. I'm so putting things in the same place, I think was a big, a big element of that, that I tried very hard, do not move things around in the APP, which I think is the worst kind of a change.
I think this is the sort of like you get a new microwave and IT has the button on the wrong side or something like that where like you just have all these very subtleties that you making an assumption you reach for something and. It's just not there like those kind of changes. I think there are the things that I heard the biggest problems with.
And then the other side and this is I think the thing that i'm been dramatically the the a big driver for this redesign is I was trying to I was thinking I was being clever by building my own of like type sizing system on top of dynamic type. And IT was one of those things were in retorts and so I got a lot of feedback saying like, wow, the APP just feels big um that and it's like all the controls feel a bit too big um and i'd address this in a variety of different ways. And there are some things that I was doing that I just but in retrospect, t like what people were saying is the APP doesn't feel right for the way that is set up.
And I think what I had been doing when this is just one of those funny things, is I had taken the kind of like one of my main goals with this redesign. This is like, I wanna make this APP the most accessible APP like possible. I want to like, maximize every, every aspect of that.
I want to make the APP super accessible. And what I did, I think, now that I can see in retrospect, is I made the apps base state sort of accessibility, zed, rather than making the APP accessible. If we were to say if it's like the main, the default state of the APP should be neutral, and then users have the ability to apply their particular preferences and needs and afford ces, they want on to that neutral state.
And the thing that I was missing is that as like I was saying, oh, if I make the text bigger, it's more eligible that's more accessible was the like mindset I was coming out of with versus I should use the default system text size. And if someone wants to make IT bigger, they have the means to make IT bigger. I don't need to make a bigger and more legible for them that something that they can do, like accessibility in this case, was about being responsive to the users needs rather than trying to anticipate their needs and providing ultimately then an experience that was less optimal for the default case.
Because IT was making I was making everything really big and putting lots of that thick borders around all my buttons um and doing these kinds of Operations that broadly like to make the that more accessible in the sense of I was sometimes like I was building an APP that had the texas set to like plus two and had button shapes turned on and had all of these afford ces, which are fabulous and wonderful things that I was supports. But like I was almost building them in, seeing if I could show, warn them into the default state, which I shouldn't have been. And the redesign in many ways has been to say, let's make you default state straight forward.
Use all the system default using like I don't use any custom functioning anymore. I don't do anything like that. Everything is based on the just the like seven styles of text size that I O S defines.
So the APP will scale accordingly if you change your dynamic type size and if you turn on button shapes. I turned back on my big, thick strokes round all my buttons. And if you turn on you high contrast mode, well, then the colors in the apple change.
I'm doing all the things to be responsive, but i'm doing IT at the users request rather than the issue. I was having four of just building a design that was overly complicated and that I got a lot of feedback from people saying as like this was not good. They did not want the apps default state to be this this kind of like large print version. They wanted IT to be the regular version, which in retrospect makes a lot of sense, but at the time, I just couldn't see .
IT this episode has brought you by tail scale. Human scale teams build trusted networks by securely connecting devices with tail scale. With tail scale, you can connect to home assistant to check your place while away.
You can also stream movies, shows and music anywhere from your network, attack storage boxes, complex or jellyfish. You can access a pie hole from anywhere. And you can secure connection when you're on a wifi you don't totally trust. And now you can sign into tail scale using your apple ID. So if you prefer having your credentials managed by apple and I cloud, that option is now available for you.
Just send to tail scale with your apple I D D on a mac or iphone using touch or face I D for a super fast sign plus you can also use a packy to have to indicate to your tail scale account a new feature. You might remember seeing W B D C. So once you're going to to the tail scale, you can use tail drop to move files between things like a macbook, iphone and ipad, even linux vms, docker containers, maybe even a steam deck or windows boxes.
If you looking to share your work more widely, tail scale function makes IT easier than ever to share your local development over the internet for collaboration, testing. And using tail scale function, you can do things like receive a web hook from github, share as local service with your co worker, or even host a personal blog or statistic on your own computer. Fund is a secure way to expose your development environment at a stable URL over the internet, complete with auto provision ed tls certificates as well.
You can use that from the command line, or you can use that from the new VS code extension with a few key starts. You can security expose the local port to the internet right from the idc tail. Scale has so many great capabilities their clients are available for matos IOS, windows, linux and android.
The free plan includes three users and one hundred devices. Go to tail scale dot com slash radar to build your teams trusted network today. That's tail scale dot com flash radar.
And if you're interested in working at tail scale, they're currently hiring a macos engineer. You can navigate to their careers page for more are things to tail scale for their support of this show. So I think what's interesting about the the redesign and design choices, especially that I love the way you're putting IT about holic.
You were trying to kind of pre build in certain accessibility features of preferences um as opposed to following the system default in the default state and and then responding to accessibility options. And I think it's interesting because first of all um that I think that kind of goes against common design sense. So I think common design sense would say you should make things as accessible as possible in the default.
But I think you're write that in practice, what people want is for things like texas, zing button shapes boldness. They want your APP to feel like whatever they have the rest of the system set to and that like conforming to system norms and the users expressed system preferences seems more important than having a strong opinion. You know, in certain ways, as I kind of going above and beyond in certain ways, and I think that kind of goes to a theme that I i've been thinking more more about design choices and custom design work in apps as being kind of like breaking grammar rules or breaking like, you know, style guides for for punctuation.
Like there are entire art forms are like poetry that are devoted to creatively breaking standard text layout and grammar rules and punctuation rules and everything. And when done well, they can be really amazing. But most people, most of the time in most context, should probably follow standard grammar, spelling and fluctuation rules.
But like if you, if you know what you're doing and you're in a context where IT makes sense in in many cases, it's not only okay but can be very fun and very creative to break those rules. And I think we really can be thinking about design standard on the platform standard, text size, standard behavior, standard books of controls. I think we should look at those the same way where most people, most of the time, should use the standard controls, the standard font sizing, the standard styles of things, the standard colors of things.
Most people, most of them should do that. And then if you really know what you're doing and you're doing something that's creatively, intentionally different from that, then you can look into customizing IT and doing different things, you know customer customer sizing, whatever else like. But but I think that, that should be a deliberate decision, not just what everyone does.
And and if you look around the APP store, I mean, you look at nicely designed apps, the kind of apps that you know that win design awards and that people regard as well designed apps. Nicely designed apps usually follow a lot more the system conventions now, you know not like games, no immersive experience kind of things that those are going to be different. But i'm talking just you know apps that use U I kit and swift stuff for that the the standards are usually followed most by the apps are considered well designed.
But if you look around the APP store, I mean, almost every APP that you would download to do anything that that is not from like a design nerd or like, you know, like somebody from the old mac community. Almost all of the other ones out there are very different from the standards. Often times they're using webbed stuff to kind of just write the same APP once running everywhere and and have to be terrible on all the platforms.
Often times their apps that were designed by people who think they could design well, who who really um can't often times of a lot of just designed by programmer happening out there which and I say this with love, I am a programmer and my design skills are not amazing um and they used to be even worse so I say this would love everybody. You know you look at the APP store, the norms are not good design. The what what most people see most of the time in most apps on the iphone that we're not made by apple are are usually pretty bad apps like they're terrible designs.
Everything is custom. Everything is is like, you know, I would say he feels more like like the weird like java cross platform windowing tooker of like the early two thousands. Everything just feel so weirdly needlessly custom and nothing works right and nothing feels right and nothing looks right.
So first of all, I I think this gives indeed like us a huge opportunity that we can look Better than ninety percent of what's out there by actually doing less work like it's actually easier to use the system default styling of of things, especially with swift U I mixit even easier because in in many cases, which I was doing a lot of, like the standard silent stuff for behind the scenes, even more than, you know, I could did. But we if we just do less customer styling work and follow apples. Either either default behaviors or standard styles. Much more often, our apps will look Better and they will work Better and they will have Better accessibility support and they will respond Better to different preferences, way Better than most of what's out there on the APP store, which is all these weird review garbage apps.
yeah. And I think it's interesting about that is the sense of I think one of the redescended that I felt was that I wanted my APP to have guess. I called a personality. I wanted IT to look distinctive and to be interesting, and that when I was thinking of what a default APP looks like, IT feels boring, right? Like, that's the thing that I didn't, that I didn't want.
I didn't want my APP to be boring in the way that in the old, like U I K is there was a certain look that if you just set all of your things to be like, it's all a default UI table view cells and it's all UI buttons in the refund t today, like there is A A same meaning to IT that is that that is not necessarily what you want like. I want the APP to look good and to feel good and to feel distinctive in a way that is IT has a personality that is hopefully attractive. And I think what is and the the trick though is I think understanding that the taking the system default and the system structure and all of the things that if you watch the design videos that to really see, talk about that clearly, like some very talented designers have spent a tremendous amount of effort and energy into getting IT just right and coming up with these rules.
And if you look at the like typography page of the human e air face guidelines, IT is full of some super like their change, the tracking, they are changing, they're currency, like they're doing all these very fine tune adjustments to all these different aspects in way that I never will, no one ever else ever will, like they've done that work. And I think where I needed understand was that me making my APP distinctive can be taking all these system components, all of these system things, these system conventions that have been sort of put out by apple. If you watch, read the human interface guidelines, watch the design videos, you love a pretty good sense of, and you can change just the, like, the top two percent of that control to make a distinctive, to give you a bit of a flavor, like the design that i'm doing know, my segmented controls don't look necessarily like an apple segmented to control.
They have a slightly different looked to them, but their metrics are the same. The accessibility of IT is the same. Like many of those things, i'm copying that. And I also think of how part of this design I went and looked at a bunch of apple's own apps.
And each of the apps, like if you look at music and you look at fitness, say they are visually very different in terms of they have a different personality to them. They have a personality that's consistent to themselves, but they also are consistent to each other that their buttons, the way they sell them, the way they color them, is different. Like the fitness p is always dark, so has a very different kind of look to IT was the the music active takes a lot of its coLoring and things based on the content has been displayed and can have a very different flavor.
But if you actually like, look at the buttons and I did this a bunch of i'd like take all the screen shots and overlay them at you know twenty five percent capacity, like all the button shapes are the same the way they're doing at the text metrics. All these things are common between them. They're just changing in just enough to give you a flavor IT, to give IT A A distinctive personality, rather than feeling like they need to come at something and say, if I want to make a distinctive, I need to build this whole system myself.
I need to make my own button class. I need to do these old things that are going to definitely make a distinctive, but perhaps not in the way that you're hoping IT will be distinctive, distinctive in a way that is cluster or an unfamiliar or different. And I think as someone who I came at design from being a programmer first, like I am a true starting out in my career, I was a highly trained program.
I went to know university for that. I went to, I went to graduate school for that. Like I was very well educated and how to be a good programmer. I had very little training in terms of how to be a good designer.
And I think the thing that I need to always have in the back of my mind there is just like I need to make sure that my like, I guess, my reach of my grass are heard in the same place that i'm not in a place where I like my reaches way beyond what i'm actually able to grasp on that. If i'm trying to design that is more ambitious, I D have more skill proportionate ates to be able to keep up with that. And I think in this particular case, like my reach was beyond my grasped, because I was trying to do something that was like, in theory, not a bad idea.
That's like potentially if I could come up with the system where I could make like a APP that is, even its default state is even more accessible, eligible for everyone. Like, cool, that sounds great. Accomplishing that is super difficult.
And in many ways, the approach that apple is taken is likely the result of hundreds of really talented designers coming at that problem, saying, let's take the approach of a nice neutral starting point that users can adapt to rather than trying to have some design that is mitha going to be able to adapt all users in all ways, just because of what IT is, which is wit never gonna be the case. And so I think there's that element of being humble enough to say, let's use the default, let's start there. And this just changed that little bit on top without a little bit color. There are a little bit of flourishes and that is a much stronger place to be. Um then trying to reinvent the whole thing yourself yeah .
like I like the distinction may between like you know trying to avoid you're APP looking too boring by being too default versus building everything from scratch in a way that that break assumptions like I think one way, but I always think about like building codes maybe because I just do a lot of heart innovation, I guess but but I think of building codes of like there are ways to make houses look individual and look awesome.
But there are certain minimum standards of people expect how things work, how things functions, how things feel, how you know the shape of things. So far, instance, you might if you're building a staircase in your house, you might think, you know stairs might be more accessible if each one is only half as tall as as like a typical stair. That way you don't have to look your foot up as much and you can just go and and you might think that's great.
And the first time someone comes your house and trust to use their stairs are gonna trip on them because the the ratios proportions of stairs are set by codes everywhere to be within a very small margin. And that's why all stairs are kind of feel the same if they've been built any time in the last like a few decades and people expect that. And so if you make different stairs are different stare angles, like it's going to actually be worse, but it's going to be it's going to feel different from what people expect.
Whereas if you use standard height stairs, no one is looking at that and saying, you know, these stairs are so boring, there's different ways to make. There is interesting besides changing how they work and changing their their basic metres. And I think I like what you've done in in the phenomenon y design with things like you're segment of controls.
You are saying where IT looks custom, but IT doesn't. It's not so far from the system one in an any particular way except like basically a skin so you can skin something to be like, you know yeah, how apple designs their apps. They used under controls mostly.
But each jp has its own accent color now. And so the pocket APP is purple. The music APP is that pink? Notice yellow, like each APP has like a main key accent color.
And for the most part, they're using mostly standard controls under that color. And you know, you see, yes, the a button is a button as a button. And in all the different apple apps, in this APP, the button is yellow, and this APP the button pink, but they're still standard button.
That level of customization is great to get some kind of personality. And even then you are following the system convention, you know you're still having a little bit color in your rap here and there. You can have like a certain personality, but let IT be mostly a surface thing on standard controls and behaviors and you'll get much Better results going that way.
Yeah and I think we ve been striking about this work is it's like now that i've done this, IT is so like IT is so liberating in a way to not have to think about some of these choices that I realized. I was setting myself up for frustration and difficulty.
By every time I was designing a little screen, I had to make all these choices that who, how should I change the the padding here, what I do for the front size here, how should I scale just things it's like, no, I just if its its body text like I had all acted to come up with, I like a cheat sheet now of like is IT a section header? Well then it's title three. If it's regular body text, it's just using body. If it's a main title is title if it's like like I have these little like cheese ts for how how I can adapt the system things and now I just use that and that makes it's been making my life so much easier as i've added features since i've done this, made this choice. It's like just rely that apple made the right choice and then I can just make my life so much easier as a result.
Thanks, liming, everybody, and will talk to you in two weeks.
right?