I taught the fifth week of the FullStack .NET bootcamp last week and the week was devoted to building mobile apps. Students learned how to build hybrid mobile apps that can run on iPhones, Windows phones, and Android phones.
We used the following technologies:
- TACO – The Visual Studio Tools for Apache Cordova.
- Ionic – The front-end framework for building nice mobile user interfaces.
- AngularJS – The AngularJS framework enabled us to build mobile apps using the MVC pattern.
- ngCordova – The open-source ngCordova library contains AngularJS services for interacting with Apache Cordova plugins.
The nice thing about mobile development on the Microsoft stack is that you can continue to use all of your favorite technologies and tools such as AngularJS, TypeScript, and Visual Studio. Building mobile apps requires the same set of skills as required for building standard Web apps.
Students learned how to build hybrid mobile apps. A hybrid mobile app can access native phone features such as the accelerometer and the media player. A hybrid app can also be sold in an app store such as the iPhone app store.
Visual Studio supports several different options for running your mobile app during development. You can use an emulator such as the Apple iPhone Simulator or the Visual Studio Emulator for Android. I demonstrated using these emulators but they were not a good choice for the students because the iPhone Simulator requires access to OSX and the Visual Studio Emulator for Android requires Windows 10 Professional (because of its requirement for Hyper-V).
We focused on using the Apache Ripple emulator because it does not have any special requirements. The Apache Ripple emulator spins up an instance of Google Chrome and creates a browser-based emulator. Apache Ripple is fast and it runs on every machine.
Student Mobile Project
The students completed several mobile labs during the week. They devoted most of Friday to building a larger and more advanced mobile app. They created an app that enables them to find the Space Needle from anywhere on earth.
The app makes one sound when you move farther away from the Space Needle (buzz!) and a second sound when you get closer to the Space Needle (clap, clap, clap!). To build the app, students needed to take advantage of several Apache Cordova plugins.
Students tested the app by taking advantage of the Apache Ripple emulator. The Apache Ripple emulator enables you to simulate moving to different locations by clicking on different places in a Google Map. Alternatively, you can enter longitude and latitude coordinates directly.
Student State of Mind
Wow, I am really impressed with the progress that students have made on their individual projects. Several of the students added support for accessing external REST APIs. For example, one student is accessing the Yelp API to get reviews and another student is accessing the Forvo API to get audio word pronunciations. Very cool stuff.
I also notice that the students are writing much more advanced LINQ queries to access database data. One student is building a complex home remodel estimation app. His app has to perform several complex queries over several one-to-many relationships to gather all of the data required to perform the estimates. Another student is writing an app that requires her to randomize the order of tasks and randomly assign the tasks to different people.
All of the students are tackling advanced security issues. For example, they are all incorporating ASP.NET Identity claims into their applications. Different users have different permissions based on their claims.
Next week is Agile week. The week is devoted to getting the students ready to start work on their big group project. I will teach the students about Agile Project Management using Scrum and how to use Scrum with Visual Studio Team Services (formally known as Visual Studio Online).
If you want to sign up for our next boot camp in Seattle then register here.