On Wednesday August 10th, Mark Sheriff (marksherriff.com) from UVA’s Computer Science department spent an hour teaching us how to build mobile apps!
According to Mark, “desktop development started open, while mobile phone development started completely closed.” Now both are starting to meet in the middle. What makes writing a mobile app different than computer development? Screen size, orientation (landscape / portrait), user location, sensors, touch screen, user in motion and more processing happening in the cloud.
Mark showed us how to build a CWIT meetup naming app on both iOS and Android platforms.
First we looked at Android Studio, the official IDE (integrated development environment) for Android. Why Android?
- The learning curve isn’t bad because it uses Java as the programming language.
- The documentation is good (way better than iOS … by a long shot).
- Android Studio does a lot of work for you.
- It is easy to publish to your Android device.
- It only costs $25 to publish for life on the Google Play store and there is little, to no review process.
- There’s also an emulator to test out apps, but it’s kind of slow.
Mark walked us through setting up a new app. One of the first things you need to think about when developing an app is what versions of the OS you are going to support. With Android there are many versions from Gingerbread to Marshmallow. In Android Studio, there’s a handy feature to let you know the percentage of devices that can support each version. When thinking about building an app, think about it as a collection of activities. An activity is usually one screen in your app. Some activities are already built, like the photo activity, log in or contact activity. With an app, it’s also important to separate screen design or layout (UI Design) from computation.
Next we reviewed iOS development. The Apple IDE is Xcode and the programming language we looked at is Swift. Swift was recently introduced by Apple as an easier alternative to writing in Objective-C, the original programming language used to develop iOS apps. Why iOS?
- For testing, the simulation environment is built into MacOS, no emulator needed.
- If you want to support both iOS and Android, you need to develop two separate apps to be true to each platform’s style.
- You can now publish to your own device for testing.
- The potential for monetization is greater in the App Store.
- To publish to the App Store, you must be part of the Apple Developer Program which has an annual fee of $99. There is also a wait and review period once you submit your app to be published.
Mark shared the CWIT Meetup Name Generator code on GitHub:
If you want to get started with app making, but still not sure you are ready for this deep dive, our resident computer science instructor, Kim Wilkens, suggests taking a look at MIT’s App Inventor for Android as well as Microsoft’s Touch Develop, a web-based development environment. And watch for Swift Playgrounds coming to an iPad near you this fall.