iPS 171 Day One Development with Layne Moseley

00:00 2129
Download MP3

2:45: Introduction


Airplane Jokes (Jaim)RescueTime (Layne)Skillshop.me (Andrew)Suggest a Guest(Charles)iPhreaks Facebook Page (Charles)ScheduleOnce(Charles)


Charles:       Hey everybody and welcome to Episode 171 of The iPhreaks Show. This week on our panel we have Andrew Madsen. Andrew: Hello from Salt Lake City. I actually have something to pitch this week that I'm really excited about. I'm doing a workshop in November here in Salt Lake that is a five day workshop to teach iOS developers how to do Mac development. It’s going to be sort of like a conference, hang out with cool people in a cool place but actually learn something with real objectives. I’ll post the link in the show notes, it’s available in person, we also have online tickets if you just want to stream the sessions. I think it’s going to be really great, I'm excited because I love Mac development. I'm excited to share it and teach more people. That’s my pitch. Charles: Awesome, is there a website? Andrew: Yeah, it’s skillshop.me. We’re actually doing some courses and some other cool stuff including 2D Game Development in iOS, Unity Development, and VR/AR. I'm not teaching those but I think those are going to be great too, I'm excited to take those ones and then I’ll be doing the Mac development class in November. Charles: Nice. We also have Jaim Zuber. Jaim: I don’t have any workshop to promote, I feel like I'm fine behind here. Go on. Charles: And Layne Moseley. Layne: Hello there, I'm in Utah as usual. Charles: Very cool. It’s funny. I’m Charles Max Wood from Devchat.tv. I just realized yesterday that I tend to read people’s names in the same order every week. I realized that Skype alphabetizes them for me. When there are four or fewer people on the call, I get the names in order and I just read them in the order that I see the pictures. That was kind of funny. This week, we’re going to be talking about, is it Day One? Layne:         That’s right Day One. Charles:       Layne is going to play both host and guest I guess. Do you want to briefly explain what Day One is? Layne:         Yeah, absolutely. Day One is a journaling app for Mac and iPhones. It’s been around for over five years now actually. I’m just looking at our time table. The initial version of Day One was released on Mac in March of 2011. The best way to describe Day One is capturing your life as you live it. That’s kind of like our tag line. It’s mainly free form writing is our main thing as we give you a great way to write things down about your life while also including photos and things like that. It’s a short little description of Day One. Charles:       I think I first heard about it from some of the business and productivity podcasts that I listened to. They were saying that it was a great way to keep and start a journal. I didn’t realize that you worked on that until today. Layne:         That’s what I’m doing. Andrew:     I’ve known about Day One almost since the beginning and I’ve known Paul for a long time and have a really high opinion of Paul and the whole company, especially the app. I use the app. Can you tell us just a little bit about how the company got started because I think it’s an interesting story. Layne:         I’m probably not the best person to tell you that because I’ve worked here for about a year, a little bit over a year. Charles:       You haven’t been there since day one? Layne:         I have not. Charles:       Sorry. I couldn’t help it. Layne:         The one thing I will say is there are an unlimited amount of puns around the name of the product for sure. I’ll tell you the history as I know it because it’s actually really interesting how I learned about Day One. I knew about Day One well before I worked here because Paul Mayne, he’s our CEO, he’s also our designer, he worked at i.tv which I worked there several years ago as well. He left i.tv and do Day One full time. I have heard about it just because I’ve heard about Paul and everything. He built this app with Ben Dolman, they’re good friends. They moonlighted it for, I’m not sure, maybe six months or something like that. They initially did it as a Mac app and then they brought in the iPhone as well. Did both of those and they released that. Releasing an app, and this was in 2011 so at that time the apps are super popular. There’s a lot of apps and releasing an app into the wild without really any other business running the app is a pretty hard thing, to get a lot of exposure and everything like that. Very soon after it being released, it was picked up and was an editor’s choice in the Mac app store. That’s kind of a common theme is that we were able to get attention from Apple over and over and over because of the good design. Apple has just always really liked Day One so I would say that’s kind of a chief driver in our popularity is the attention that Apple gives us. Charles:       That’s interesting. What you’re saying is that the only product that the company makes is Day One and you make all your money by selling Day One? Layne:         That is correct. We have one source of revenue right now. That is initial app sale. Andrew:     Which is really cool to me because most of us developers know, the market has shifted to where the top grossing app in the app store are mostly free with in app purchase games and a lot of those are kind of scammy, borderline scammy. They’re not really about providing a product that people love and are just willing to pay for, they’re kind of trying to figure out sneaky ways to exploit people’s psychology or whatever and get money from them. This is really just like straight ahead we make a great thing, give us a reasonable amount of money for it and you get to use it and people love it and they do it. It makes me proud and happy for Day One. Layne:         Thank you. It’s sad that it’s a throwback nowadays. Andrew:     It is sad. The history of Day One intersects with me just a little bit. I’ve known Paul for a while since back when he and, well I don’t know about him but at least when Ben was just moonlighting working on it and then the guys who were doing iOS app too and he actually asked me to come on and work full time and be the first full time developer because Ben didn’t really want to leave his job at that time. It didn’t end up working out. I stayed where I was and he convinced Ben to leave and do it full time and I’ve often sort of regretted that because I would love to work with Paul and to work on Day One but maybe in the future, you never know I guess. Layne:         You’ll never know. Andrew:     I did actually develop another app besides Day One for Paul but it never saw the light of day because I think Day One started making enough money there was no reason to do anything else. Layne:         Yeah. A couple of interesting things, we have milestones on our website that you can look at. A couple of the really interesting ones are we got iPad App Store App Of The Week. It’s been several times that we were able to get App Of The Week and then The Verge came and did a really nice review and then Jack Dorsey endorsed the app which is really, really interesting. Those are just a lot of things that just really added a lot of momentum, and then we got the Mac App Store Of The Year which you know whenever you get a full front row feature on the app store, it just boosts sales like crazy. Charles:       That seems really interesting to me, at least from what you’re describing if you can get Apple to promote your application then good things happen for you. Is there anything else that you all have done to make the product go as well as it has? Layne:         I think another thing that we’ve done really well in years past is we adopt new things that come out in iOS almost immediately. We use just as many features as we can of the OS. A couple of examples are, this may seem silly but it’s actually super useful is we use the step count. When iPhones have pedometers put in them, we attached the step count to your journal entries. While it may seem silly, it’s actually super interesting because when you look to the journal entry and you see how many step you’ve taken up until that moment when you wrote the journal entry, it starts to recall memories. We also add tons of metadata such as the weather and whether it was raining or it was sunny. Things like that. We use all of the data that the phone gives in order to recall memories as you're recalling things. That’s one thing, definitely. We use as many features as we possibly can in iOS and Apple really likes that. They like to promote and feature apps that are using all of the new technology. Andrew:     I think another thing that Day One has done that’s really smart is, I don’t know if you’ve done this in other instances but I do know for sure for iCloud which you’ve moved away from and I want to talk about that. When iCloud first came out I think Day One was really one of the first third party apps that embraced it and started using it. It released an update with iCloud support. Of course Apple loves that when they come out with some big new feature at WWDC and then you take advantage of it in your app and when the new OS is released in the fall or whatever they can feature some apps on the app store to say, “Hey, here are great apps that use the new stuff we just announced.” You’ve been good about jumping on that. Layne:         Absolutely. I wasn’t here when iCloud was put in but I believe from what I have heard that we were the largest iCloud user at the time. Andrew:     Interesting, besides Apple, right? Layne:         Yeah obviously, as far as third party apps go we were probably the biggest one there. Andrew:     Maybe we can save it for later. I want to talk to you about what you’re doing instead of iCloud. Layne:         We should save that for the end. Andrew:     Paul Mayne, the guy who came up with the app and started the company and is still the CEO is a designer by profession, a really good one too. Apple design award winning even for Day One. How was that working at the company where the CEO and the guy in charge is a designer? Layne:           I’ve worked at a lot of startups, that’s why I’ve seen a lot of different CEO’s and what they believe in their products and how they work. I think Paul’s my favorite. I’m going to say it. I think he is and the reason is because he is like the number one user of Day One. He has like 10,000 journal entries or something in over five years. It’s crazy, there’s so much. Because he is like number one user and he’s the designer, he has so much insight into what a user of the app has. It’s really personal to him. He’s so motivated and so in my opinion I love it because he really knows what somebody wants when they’re using our app and it’s great. Charles:       Well, he cares. Layne:         He does. He cares so much, exactly. Charles:       I’ve seen CEOs come into a company or even start a company and after a while it’s all about the bottom line or it’s about keeping the board or the shareholders happy. To have a CEO that’s engaged with the product, I’m sure that makes a huge difference because he cares then about what you’re doing. Layne:         Absolutely. It’s also really interesting to know that we do not have any outside investors and so there is no board. There are no investors, there’s no anybody really. It’s just Paul and the team. He leads us in this, how do we continually make Day One better. I would say that his number one thing is just that. How can we make the product as good as possible? Charles:       I’m curious, how do you make the product or I guess what’s your process at the company? Is it Agile, which could mean any number of different things? Are you doing Scrum? The other question I have is how the new features get added or what’s the process for that? Layne:         We’re really pretty loose. I’d say we do follow some Agile principles but the development flow is pretty simple. Paul or really anybody else, but Paul leads this. He has a list of features, in fact I think he has years worth of a road map. I’m currently working on something personally that he’s wanted for four years. He really leads the product development. We do have another guy here named Dallas Petersen. He’s the head of the product side and so it’s really him and Paul. Him and Paul lead what we want to do down the road, kind of figure out our map and that’s about it. They come up with the ideas, they pitch the ideas to everybody. We all give our input and then we just start working on them. It’s pretty simple. Charles:       Then on the other end, do you have CI or anything else set up? Layne:         We do that. We’ve got CI setup. We run our tests and all that. We use GitHub all the time for poll requests and for reviewing code and all that kind of stuff. We just build milestones based on what we want to do. We’re pretty loose on those because the number one goal is a quality product and so we iterate quite a bit. Paul would come up with an idea and then for example one of the developers will quote up a prototype of it. He’ll play around with it, he’ll take it home and use it for a couple of days, come back with feedback and we just go back and forth until we arrive at something that we feel is pretty awesome. Andrew:     Day One started out as a project that people working on in their spare, I shouldn’t say spare time but evenings and weekends, moonlighting, they had full time jobs. I know Ben reasonably well. I can’t really remember the other, the guys who were working on the iOS app in the beginning. I’ve always had the impression that that’s a little difficult because people can’t really devote their full time and energy to things and they may sometimes take shortcuts. In the meantime, Day One has built up this team of incredible developers who I really respect. To way or another, I kind of know all of you. I imagine you are writing really good code, for the most part. Layne:         We can always help. Andrew:     Yeah. Anyway what I’m getting at here is what was it, maybe you don’t know because you’ve only been there for a year but I wonder if there were sort of a transition when Day One went from this moonlighting to, “Okay, we’re really doing this for real. Everybody’s going to work on it full time. Have this serious code base.” I think it’s a fairly mature code base too, you’re in version 2.0. Layne:         Yeah, absolutely. Andrew:     Which was a really serious thing. It’s not a fake version 2.0. It’s a real version 2.0. Layne:         2.0 was massive. I can’t really say when the transition happened between moonlighting to full time gig. If you’ve used Day One from the very beginning, the initial app was just really bare bones. It was like, “Here’s a list of the things you’ve written and here’s the content.” You could add one picture to each journal entry. There was no sync. There was nothing. It was very, very, very simple. What I really like and it’s very similar to now is the constant iterating and perfecting that just has gone over years and years. When Day One started making some serious money is I think when Paul realized, “Hey, I’ve got an idea here that isn’t just a pet project. This is a serious business.” The app was really able to tap into the niche market where people generally want to do this. A lot of people do. Day One makes it a lot easier than keeping a handwritten journal. What we’re trying to do is make that next generation of journal or record keeping for individuals. Jaim:           How do you improve on a pen and paper? What are you doing to make journaling more something that people are actually going to do? A lot of people think, “Oh, journal.” And they don’t do it. Well, they do it for two days. How do you keep people do this? Layne:         There’s a lot of things that we’re doing. One is metadata I think which is really interesting. I didn’t think that metadata was that big of a deal until I started journaling a lot. Now that I work here, obviously, I journal every day. Pulling in all sorts of metadata into your journal entries automatically is a huge thing to me because it really helps a person kind of jog their memory and recall certain events. Even if you haven’t written a lot about the day because you have all this metadata, it’s really, really interesting. It’s easy to remember. We pull in locations automatically so we can map for you where you’ve written all of your journal entries. When you add a photo, we automatically grab the EXIF data in the photo and apply that to the entry so that it can put that entry where you took the photo not from where you’re writing the entry. We have really good filtering and searching so that you can go back to previous years and easily identify things you’ve written in the past. There’s tagging involved so that you can tag all of your journal entries for easy searching and filtering later. There are just these things that you know, these aren’t unique things to journaling, they are across a lot of the technology that we have now but when they’re applied specifically, it creates a really compelling case. Another feature that we added just this year is called On This Day which if you’re familiar with time hop, it’s very similar to that where we automatically will show you journal entries that you’ve written in years past which is a great way to remember the things that happened in your life. Andrew:     As a user of day one, two things I would say that Day One does, one thing is really simple. It’s easier to write a journal when you can write in your journal wherever you are because it’s on your phone on or on your Mac whereas you can’t carry a notebook around or I guess you can but you can’t carry a legitimate journal around with you everywhere, at least not as easily. The other thing is Day One encourages you to make a journal not a big thing. You don’t have to write a page long thing every night or whatever. You can write a sentence or two where you are or take a picture and write a caption with it which is no more difficult than posting on Instagram or Facebook really. There is a lot of friction removed. We’ll also send you reminders everyday if you want it to. Layne:         That’s absolutely right. That’s a great point, Andrew, because a lot of people have called it micro journaling. You don’t have to sit there and describe the day and everything that happened, you can throw a picture in there, write a couple of sentences and you’ve got just about as much information as you need and that’s pretty awesome. Andrew:     I suppose now is as good a time as any to talk about sync because it’s another cool thing about Day One which is that you can use it one Mac and your iPhone or your iPad and everything is synced between devices. Day One was doing this even before iCloud was a thing using Dropbox. Layne:         I would say real quick before we keep going on this topic, this is another one of the reasons why Day One was so popular is because we were doing sync with Dropbox before sync was really popular. Being able to write a little bit on your iPhone and then write a whole bunch on your Mac was just really great. People just love that. Andrew:     I was going to ask a little bit about the technical details because Day One is essentially entrusted with something really valuable and important from each user and that is their journal entries. It’s a very bad thing if they get corrupted or get lost, users are not going to be happy about that and rightfully so because they’re precious. What does that mean for Day One? Is that sort of a hard thing to deal with? I'm also curious about some of the technical problems you’ve encountered. Layne:         Everyone really liked Dropbox and iCloud syncing because it was private to whatever degree those services are. People have a lot of faith in Apple with privacy, obviously. When we introduced iCloud, people loved that because it was super private and everyone loved that. When we launched 2.0, we removed iCloud and Dropbox and built our own syncing service, we call it Day One Sync. If anyone has worked on sync, you know that it is one of the most difficult things to get right because there are an infinite number of edge cases and it’s just very, very hard. In fact, iCloud out the gate was a good service but it had its fair share of problems. We take security super seriously. It’s a thing we think about a lot because we are not a service where we’re going to mine your data for advertisers, that’s not what we’re going to do. When we launched 2.0 app this year with our own syncing service only, there is a little bit of a backlash because people were concerned about the privacy and the security. Andrew, let me ask you now, was that something that you considered when 2.0 came out as a user? Andrew:     Definitely, although I already said I know Paul and have known Paul for a while and know other people on the team and have a lot of respect for you and trust the team. I’m not maybe the regular user that doesn’t really know anything about the company, close to it. It’s kind of like I trust that they’re not going to steal my data scam me or whatever. Also, technically, I think you guys are really smart so I was pretty confident you’d come up with something that worked the way it was supposed to and I wasn’t going to lose my data or whatever. Accepting all that, in general I’m going to trust Apple, for that matter Dropbox, more than some small team of ten people or however many you had that has never done this before kind of thing. Layne:         I think the concerns are definitely valid but there are definitely reasons why we decided to go that way. One of the main reasons was just the experience. Dropbox is about file sharing and iCloud also was about sharing files and everything. The experience of syncing with those was fine but it wasn’t spectacular. Our service, if you’ve used it, is just extremely fast. It’s a very tailored service for what the product does. The speed and reliability are really, really great. One of the other concerns is privacy. We’re currently working on full end encryption that will be out later this year probably towards the end of the year. We’re hoping with that, the privacy concerns will go away because at that point we will have no idea the contents of your journals. Andrew:     What did it take as a team of, originally a team of iOS developers and Mac developers and a designer? How did you go from that to knowing how to do a backend for sync? If you don’t mind, tell us a little bit about how the back end is implemented. I can’t even remember now but you’re using something of an interesting text deck I think. Layne:         I’m not on the backend team. I’ll start here is we did hire a couple of guys to do backend for us. It wasn’t like the iOS guys came and like, “We’re going to do the backend now.” We hired a couple of really, really smart guys. It took a long time to design the whole system. I don’t know all of the technical details myself because I’m really focused on the iOS side but we’re pretty standard. We run stuff in Amazon. We use Couchbase as our database. Our server’s all written in Scala which is as far as I understand fantastic language. Like I said, very tailored. I arrived here after this was all finished and so I don’t really know exactly how we got from there to where we are now but so far I’ve been using our syncing service for quite a long time and it’s pretty great. Andrew:       I’m trying not to monopolize. I have more questions if nobody else does. Jaim:         Go right ahead. Charles:       One thing that I’m curious about is that when I was introduced to Day One it was mostly a Mac app and then the iOS seemed like it kind of came along later. Does it feel like it’s a Mac app with an iOS extension or vice versa or are they really on par one system with the other? Layne:         At the current time they are definitely on par. Everything that you can do in the Mac app, you can do on the iOS app. We have a substantial number of users on iOS compared to Mac, there’s a lot more. A lot of that goes back to the fact that we gave the app away for a promotion that Apple did, we gave away like millions of copies of the app. Just those numbers, but they’re definitely on par and we have a lot more iOS users than Mac users. Andrew:     That weaves into what’s going to be my question which is how do you deal with sharing code between the two because I imagine there’s a lot of stuff that the Mac and iOS apps do that should be able to be shared. Layne:         You’re absolutely right. We have three repositories. We have a Mac and the iOS and then what we call our Day One Core. Day One Core is everything, really everything that we share. The big thing is all of our syncing. All of the code that does syncing is a 100% shared between the two platforms which is pretty great. On the technical side, the way that we just include that code is, right now it’s pretty easy because we’re specifically on Apple platforms. Basically, our core is included as a sub module in Git and we include that as an Xcode subproject and that sub project builds a framework and that framework gets included into the iOS or Mac apps. It just gets run from there. We have pretty good success with sharing code. I would say our shared code base is as big as either of the apps themselves. There’s a ton of shared code, it’s great. It occurs to me, it’s not only syncing code but all of our data storage as well because we use core data extensively which is available on iOS and Mac and so all of our data storage and model layer is shared as well. Charles:       That’s really cool. Layne:         You think of a journaling app. It seems pretty simple but as was said earlier, it’s very mature and it does a lot of things, way more than meet the eye. Any code that we can share is fantastic. For example, we can also share code that does our photo processing because we're on Apple we can all use those Mac’s foundation frameworks to do just a variety of things and it’s great. Charles:       One of the things that I’m a little curious about is, is Day One in the Apple Mac app store or is it something you picked up on your own? Layne:         It is exclusively in the Mac app store right now. The main reasons for that were iCloud, you can only use iCloud, well you could only use iCloud, that’s changing with the next updates. The other reason was we used a Mac Kit which also now is no longer a requirement to be in the Mac app store. There were a few frameworks that we’re using that were a requirement to be in the Mac app store but that’s all changed and so I don’t know, there may be a time in the future where we get out of the Mac app store as well. It’s just a little bit more complicated. They have to worry about licensing and things like that but we’ve had good success in the Mac app store. I’d say we’re probably one of the most successful Mac app store apps that’s ever been created. Andrew:     One Mac app store app of the year award in 2012 maybe was it, I don’t remember. Layne:         Yeah, I think it was 2012. Charles:       Jaim, do you want to start us with picks? Jaim:           Did you go in order or you switched it up? Charles:       I’ve switched it up. Jaim:           Oh men, going crazy. Alright, you know we’ve all had this discussion. You know Airplane the movie is funny, right? There’s a lot of joke but what is the best joke in Airplane? We’ve all discussed this. Not personally but metaphorically, many people have discussed what’s the best joke. A group of people got together, comedy writers, they went through every joke in Airplane and they ranked it. It’s entertaining to read if you like the movie or even if you don’t like the movie. Probably enjoy reading all of it. Every Joke From Airplane Ranked, it’s a blog post. URL I can’t pronounce but I will put in the show notes but if you want a 22-minute read about Airplane, I got you covered. Here it is. Layne:         That’s so funny, Jaim. I saw that yesterday as well and was just cracking up. It’s so ridiculous. Jaim:           It’s a commentary on Airplane. Charles:       Nice. Layne what are your picks? Layne:         I have one. It is called Rescue Time which is a little app that you can install on your Mac and they have a bunch of different platforms and it will basically analyze everything you’re doing on your computer and categorize those activities and give you a nice dashboard of what you’re spending your time on, on your computer. It seems scary but I believe that knowledge is power and so I’m not trying to stop using Tweetbot so much during the day, during the workday because now I understand how much time I’m on there. That’s Rescue Time. It’s pretty cool. Charles:       I’ve used it before too. I think or I might be using something else. I think mine is called Desk Time. Layne:         There are several of these products but if you’re just interested in exactly basically to the minute of what you’re doing during your workday or whatever, it’s pretty great. Charles:       Andrew, what are your picks? Andrew:     I’ve got two picks today. They are admittedly both sort of self promoting picks but too bad. The first one is actually sort of relevant to what we were just talking about which is why I thought of it. I appeared on the latest episode of the Ray Wenderlich Podcast. They’re friends of the show too so I think it’s legitimate. I was talking about sort of the business of Mac apps and we talked a lot about selling on the Mac App Store versus selling outside the Mac app store and what are the pros and cons there are because I have experienced doing both. As we record this, that episode is actually not out but I think it’s supposed to be out later today. I’ll get a link for the show notes. I think it was a good episode, I actually really enjoyed listening to the Ray Wenderlich Podcast myself. It’s really the only iOS podcast besides iPhreaks that I follow at all. My second pick is something I talked about at the very beginning of the show which is a workshop that I’m doing. It’s a new company that’s just starting called Skill Shop doing workshops. I’m going to be doing one of the first workshops we do. I’m going to be doing a workshop on Mac development and it’s for people who are already iOS developers or good at that but want to learn, want to add Mac development to their set of skills. I’m really looking forward to it. I think we’re going to put together something that’s a lot of fun and also teaches you a real skill that can help you improve your ability as developers. Check that out, that’s at skillshop.me. Those are my picks. Charles:       I’ve got a few picks that I’m going to throw out there. These are all things that you can do to help the show out. The first one is if you have a guest or a topic recommendation, you can go to iPhreakshow.com and click the links to suggest topics and suggest guest. That would help me know what you want to know. If you just have a question, you can just put that in as a topic and then maybe we can tackle it and answer it. Another pick that I have, and this is also related to the show, is I’ve set up a Facebook page for the show. I’ll put a link to that in the show notes so if you want to go like the page, that would really help as well. It gets us a little bit more noticed. I don’t know what the right word is but it ranks us better on people’s pages on their home pages on Facebook. The more likes we have, the better off we are. I would appreciate people going in pick and liking that. Finally, I’ve been using Calendly for a long time to do scheduling stuff and I just stumbled across ScheduleOnce which is a competitor to Calendly. The reason that I’m picking it is because Calendly is nice, I really like it, it works really well. But the problem I had was that in order to connect to multiple calendars, I had to set up multiple accounts which really kind of sucks. I just switched things over to ScheduleOnce and now I have sign up pages for each of the shows that put the guest into their own calendar and things like that for each show and it just works really well. I’m also going to pick ScheduleOnce. With that we’ll go ahead and wrap up. Quick reminder to go check out Andrew’s course. If you come up to Salt Lake City, let us know because a few of us are close by and we’d love to meet you and we’ll go ahead and wrap up the show. We’ll catch you all next week.

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.