In recent years, there is a growing understanding that programming is an essential subject for younger generations. It’s not uncommon to see apps being built by high school juniors. I am really amazed by their ideas and the quality of their apps. From time to time, I have been getting some emails from young developers about sharing their app development experience.
In the last app showcase, we interviewed Antoine Bellanger, who was a 14 year old developer. This time we invited Dylan Diamond to talk about his app development journey. He taught himself how to code and started building his first app at the age of thirteen. His second app has reached #3 in the App Store under paid educational apps. At the time of this writing, he has already published five apps in the App Store including his latest app called Saround.
Read on to learn about how Dylan learned to code and created his apps.
1. Hi Dylan, can you please tell me more about your background and your first app?
I am a high school junior in Westport, CT and have been actively programming for about 6 years. For the last three years, I have focused largely on iOS development.
During 8th grade, when I was 13, I received an assignment for science class to build anything that could help people (specifically students) learn more about the different moon phases. Most kids made brochures and other creations of that sort, but I decided to take on the challenge of making an iOS app, as I knew that would be a very accessible platform to most students and an easy way to learn more about the moon. In about a week, after doing extensive online research and watching countless videos, I built my first app, MyMoonPhase, which is still in the app store today. (It was my first app, please don’t judge design too harshly!)
2. As I know, you continued to build apps after creating your first one. Can you tell us more about that?
After making my first app, I was very curious to learn more and wanted to do more complex things. The next year when I was in 9th grade and starting high school, I had an idea to develop an app for our schools online grading software, Home Access Center. The website that we all used to check our grades was very old and outdated, and did not render properly on a mobile device so students basically had to use a computer to see their grades. The app, myHAC, took just under a month to make its first version, and it was a huge success in my school, Staples High School.
The first versions of myHAC only worked for my school district, but every day I would receive emails from students in other school districts, wanting me to make the app available to their school. That inspired me to redesign myHAC and make it work with schools all across the country that use the same grading software. Now, it has reached #3 in the App Store under paid educational apps and is the most used app in many schools across the country.
I was approached by an entrepreneur in my town, Westport CT, to partner with him to make an app called Saround. This was a daunting task because I had never made an app as complex as that before, but I eagerly accepted the challenge and for the next 7 months and after many revisions, I launched Saround in the App Store. You can read more about it in its App Store description.
I’m excited about two new apps that I’m hoping to release within the next month that I’ve been working on for a while and hope people will enjoy them as much as I had making them.
In addition to these apps, last year I made an app for my school’s newspaper, Inklings-News.
3. Can you share with us how you started learning iOS programming?
I first started learning iOS development by watching YouTube videos which took me from no iOS experience to at least the basics of how to use Xcode and the general structure of how the project should look, such as setting up Storyboards, connecting outlets, and setting up functions/classes. From there, as I began to build more complex apps, I needed to learn the fundamentals of mobile development at a more advanced level, so I watched Stanford’s amazing iOS Development course online, which taught me about harder topics that the basic videos did not cover. I learned how to properly implement the MVC design in all my apps and other best practices to follow.
When working on a project, AppCoda is my go to resource for specifics on implementing various APIs, as you are always have the latest info when a new iOS version is released and things change. Last night I actually implemented the new iOS 9 Contacts Framework following your tutorial. I was also introduced to Parse on AppCoda along with some of Ray Wenderlich’s tutorials, and that was a game changer for me. Rather than setting up a whole backend api on either Heroku or another manual process, I could focus on the fun iOS development and easily code with speed and worry about the UI, and less about the backend. Parse is also great for Push Notifications in all of my apps.
I recently visited a university and sat in on an iOS Development class, which was my first time in a formal educational setting for this topic. I can safely say that all of the tutorials online that I read and videos I watched taught me more than the scope of the class, so I’m thankful to you for providing all of your resources that helped me along the way.
4. Are you now using Swift or Objective-C to develop your apps? Do you use any third-party frameworks?
I first started iOS Development by learning Objective-C since that was the only native language for it around at the time, and I wrote most of my apps in that, but since the start of this year I’ve only been doing Swift for new apps. I didn’t think it was worth it to update all of my old apps to Swift so I maintain them in Objective-C, but I love Swift now and found it easy to pick up after knowing Objective-C. It has syntax similar to other programming languages I know such as Ruby and Java, and without all of the quirkiness of C.
Regarding third-party frameworks, I use Parse extensively as mentioned before. I also use AFNetworking on occasion when I don’t have the luxury of Parse, but I enjoy using Apple’s built in networking APIs for networking more than third party ones. I also use Facebook’s iOS SDK in conjunction with Parse for authentication. My latest app I’m about to release uses the Google Map SDK for iOS which I much prefer to Apple’s native map view. For UI, I almost always use MBProgressHUD and other small frameworks like that, but they don’t contribute to core functionality of the app.
5. I also love to use Parse and AFNetworking (or Alamofire in Swift). Let’s talk about app marketing. You mentioned your myHAC app has reached #3 in the App Store under paid educational apps and was the most used app in many schools across the country. How do you market your app?
Ok. In regards to marketing with myHAC, I didn’t have to do too much work because there were already many people from different schools across the country who inquired about me making a public version of the app that at the time, only worked for my school. Once I released a version compatible with the public, I emailed everyone back and from there it spread rapidly through word of mouth I’m assuming. A lot of people were just searching for “home access center app” on the app store and my app comes up first.
We are beta testing Saround with a small audience now to work out the bugs, and hopefully soon we will fully market that using online techniques, our website, and of course word of mouth. I think that keywords are super important when publishing an app and sometimes overlooked. If people don’t know your app’s name, they will search for what it does, and it is critical that your app be at the top of the results that the user will see. Aside from the app store, it is important to share your creation with your school/community and get people excited about it. If people really like an app, they will share it with their friends and essentially do free advertising on your behalf. With my new social skiing app I’m launching soon, I think the key to marketing will be word of mouth and to target the audience that I’m looking for: skiers. I’m planning on ordering stickers to put on ski lift boards and to advertise within ski mountains.
6. Any advices for new iOS developers?
My advice to new developers is that I believe iOS is one of the best platforms to develop on, and that if you want to start programming, this is a great place to begin. Even if you are an experienced developer who doesn’t currently develop for iOS, it will be worth learning. Although the learning curve might be a bit steep at first, such as getting acquainted with your new programming environment (Xcode) and all of the Apple APIs, persevere and don’t give up. Start like I did with simple YouTube videos, and then work your way up. Appcoda is an amazing resource to use throughout your learning process and there is a tutorial for almost any feature you need to implement.
StackOverflow is another irreplaceable tool that I probably use the most during the development process. Whenever you have a question, simply Google it and most likely your first result will be on this site. Connect with other developers on it and ask questions. People usually write back pretty quickly and you will be on your way then. It can be extremely frustrating at times if your app keeps crashing with SIGABRT error or EXC_BAD_ACCESS, and you will most certainly encounter these irritating little bugs. Stay calm, Google it, and you will eventually solve your issue. Next time you won’t make the same mistake so think of it as a learning experience 🙂 It is extremely rewarding and gratifying to be able to code something on your computer and soon have it available to anyone with an iPhone/iPad, a device they use everyday.
7. Lastly, what’s the upcoming plan?
As I said before, I’m about to launch a new skiing social app that’s been in the works for about 8 months of on/off development that I’m excited about. I’m also involved with a startup building an app to expedite food ordering at school cafeterias which I think would help a lot of people out and be used every day, so stay tuned!
Are you interested in sharing your app development experience? Please leave us comment below or send us a message.