Build Your First App in 4 Days
If you haven't heard of it already, you'll be hearing a lot about Ionic 2 through my content. Ionic is the most popular and powerful HTML5 mobile framework available today - we'll talk more about what exactly a HTML5 mobile framework is in just a moment - and Ionic 2 is the latest iteration of that framework.
If you'd like to learn a little more about HTML5 mobile applications, keep reading below after dropping off your email address...
What is a HTML5 Mobile App?
Of course, since the applications are built with web tech, they will run on the web and users will be able to access them through their browser. In fact, this is what a progressive web app is - a web based mobile application that makes use of modern web technology to bring a native app-like experience to the user.
But what if you want a normal app that can be submitted to app stores and installed on the user's device?
No problem. We have frameworks like Ionic to help build our app, and we have another technology called Cordova that can wrap that app up into a native package. Cordova creates a native application for whatever platforms you are building on, embeds a web browser into that application, and then loads your web based application into that browser. The end result is a native application that can access all native functionality, can be submitted to the app stores, and looks no different to a normal native app (you can't actually see this "embedded browser").
Although progressive web apps are the trendy new thing (for good reason), HTML5 mobile applications built with Cordova are the most common use case - these are called hybrid apps. One of the best things about building apps this way is that you can create native apps (for multiple platforms) and have a progressive web app available on the web if you like.
So let's recap the benefits of HTML5 mobile applications that we have discussed so far...
- They are built with web tech (and the web is cool)
- They can run on multiple platforms from a single code base
- They can be deployed to the web as progressive web apps
- They can be deployed natively to app stores and installed on user's devices
- They can access all of the native functionality that a native app can
All that sounds great, but what's the downside? In tech, there is never one solution to rule them all, so yes, there is downsides. I want to highlight those downsides here because I think they are legitimate, but are often exaggerated. I'm also not trying to paint a pretty picture, I want you to know all the facts.
A common line of thought is.... Don't native apps perform better? It is a valid conern, but in most cases the answer is no, not noticeably.
Native applications do have access to more power than hybrid apps do (a native apps engine is the device itself, a hybrid apps engine is that embedded browser), and it's important to understand the limitations of the browser. If you want to build an application that is going to rely on heavy animations, high processor use, 3D graphics, or anything that is going to require a lot of power, then a native approach will likely be the better option. In some circumstances where you have huge amounts of data in your application, you will also need to be more careful in how you display and manipulate that data with a hybrid app.
The idea that native apps perform better in all scenarios is simply not true. For most circumstances, there will be no noticeable difference - if you never need to go faster than 100km/ph then there's no benefit to having the engine of a Ferrari.
The other big issue with HTML5 mobile applications is plugins. As I mentioned, with Cordova a HTML5 mobile application can access all of the functionality that a native app can - Camera, Contacts, Bluetooth, and so on. To do this, you need to use Cordova plugins. This is basically a bit of code that handles communication between your app and the Native API that you are using, like the Camera API. There are tons of plugins currently available, both official and community created, and in 99% of cases there will already be a plugin for what you need. But if there isn't, or the plugin that does exist doesn't work the way you want it to, you'll have to extend or create it yourself - which will involve diving into the native code.
HTML5 mobile applications are a great all-round approach - they are extremely flexible, reasonably easy to learn if you have a web background, and work everywhere. Hybrid apps are certainly no toy or prototyping tool either, if you want an example of some huge, kick-ass HTML5 mobile apps check out SworkIt and Untappd.
I'm a mobile developer formerly from Adelaide, Australia – now from all over Australia as my partner and I make our way around this great big country in a caravan (Australia is about as big as the United States for those of you who don’t know!). I've been teaching mobile development on my blog for about 3 years, my free tutorials currently receive an average of over 1 million views per year, and over 9,000 developers are subscribed via email to receive all of my free HTML5 mobile tutorials (why not join them?).
In the past I've released multiple HTML5 mobile books and courses, the most popular of which is Building Mobile Apps with Ionic 2 which has sold over 1,000 copies.
I take a practical and to the point approach to teaching. I understand that people have different levels of understanding and take the effort to make sure concepts, no matter how big or small, are explained thoroughly. Take a look at some of the feedback I've received below to see if my content sounds like a fit for you.
"Josh's writing style is light and enthusiastic, making it enjoyable to consume large amounts of information easily, no small feat when addressing a technical matter." - David Izatt
"For anyone that needs a full guide to getting started with Ionic 2 I recommend Josh's book. It's without a doubt one of the best technical books I've read. I went through it during the weekend and started building my first complex Ionic 2 app on Monday, it's worth every $$." - Jorge Vergara
Books & Courses
I create a lot of free content, usually one or two tutorials every week on my blog. If you subscribe 95% of what you will hear from me is entirely free content (and if that's all you're after, that's perfectly fine!).
For those people looking for a little bit more, I also occasionally create premium books and courses. These are high quality learning resources packed with content, with more of a "start to finish" approach than my free tutorials which focus on a single thing in isolation. I make sure to make all of these resources well worth the investment, and the sales of these books and courses help keep my free content free.
This is a comprehensive course that covers absolutely everything you need to know to start building mobile applications with Ionic 2. Starting with a thorough explanation of the basics, working up to examples of varying degress of difficulty, right through to getting the application onto real devices and submitting them to app stores.
This is an extensive, self paced course that will give you all the insight you need to start developing HTML5 mobile applications. You'll learn everything from general theory, to building real applications for both iOS and Android, to actually getting them live on the Apple App Store and Google Play. You will develop one data driven application with the Ionic framework, and one mobile game with the Phaser framework. This course teaches Ionic 1, if you are learning Ionic I would recommend learning Ionic 2 with Building Mobile Apps with Ionic 2 instead.
If you're after some one-on-one style advice or guidance, I also offer some consulting services. These services are great for people who are looking for a little extra support, but still want to remain in the drivers seat for development. I don't have time available to take on big projects, and generally limit the time I spend with any one client to 10 hours a month. If you're unsure if my services will be a good fit, please feel free to get in touch.