Ionic Framework

In my last post I talked about Ionic Framework for cross platform app development. I wasn’t going to post about this quite so soon but today I saw that Ionic Framework 1.0.0 has been released so seemed an apt opportunity to do so!

Ionic was recommended to me as a solution to a problem I’m sure many other people face when wanting to learn app development – should I learn to program for iOS, Android or something else? Ionic, which sits on top of Cordova, helps you quickly build apps with a shallower learning curve. Okay, so you can just develop something without any programming (although some tools are being developed to assist with that) but it’s easier to build something based on HTML, CSS and JS than learning Objective-C or Java. Ionic is a framework for building your apps with all the usual features you would expect to see in an app – scrolling, swiping, touch response etc – and still look like most apps should – with sidebars, tabs etc.

Ionic is built using AngularJS, which may seem a little bit tricky to many people, but again is well worth the investment. However, I found that it’s fairly easy to pick up what is needed from downloading the templates to see how tabs and sidebars work in practise.

How does Cordova sit in? Well Cordova essentially takes your app built in HTML, CSS and JS (like a website) and turns it into an app that can be used on iOS and Android and other platforms. Ionic is used to make everything ‘look’ nice, and Cordova does the magic transformation.

Ionic are gradually adding more and more services but here are some of the resources on offer.

Ionic Framework – the main Ionic page

Ionicons – the icon sets used within the Ionic Framework

Ionic Playground – build a test Ionic App in the browser without needing to install anything

Ionic View – an app for Android and iOS to view apps that have been shared, useful for testing on devices

Ionic Creator – a drag-and-drop interface to help rapidly build apps, can then download the source code to edit as necessary after

Ionic Platform – a fairly new development but useful for adding backend services, such as push notifications or analytics

Also not directly Ionic, but built by the guys behind it, is ngCordova , which provides Cordova extensions to use in AngularJS. This is useful when you want to use things like the Camera, or serve ads, or Touch ID etc.

So there we have a fairly rough overview of what Ionic is and what is available. I’ll post more as I get developing more and hopefully get my first app up and live before the year is out. Which is probably what I said this time last year…

Mobile App Development

I’ve had a keen interest in programming generally for many years, and indeed as part of my day job I get the chance to do some interesting programming tasks in a variety of languages.

One application that has increasingly interested me over the past year or so has been putting those programming skills into learning to develop mobile apps. In fact, my christmas present to myself last year was a Mac Mini with a view to developing iOS apps.

Talking to some other people and reading blogs and online, there are loads of resources dedicated to developing for iOS and Android. Other platforms, such as Windows Phone, have developer programs too but the number of devices running these platforms seems small if you want to really target a wider market.

That’s all very well, but there is clearly a large learning curve – if you want to build an app to target multiple operating systems and devices, then you need to be able to code for each. However, there is a move towards tools for cross platform development.

Here, you use tools with (arguably) a less steep learning curve, usually based on languages more associated with building websites – HTML, CSS and JavaScript. You build the app almost as you would a web site and then wrap it up to be compatible with the systems you are targeting.

To me this seems like a great way to try and rapidly and easily get developing an app. If, like me, you have some ideas and just want to get them built and tested, rapid design has a lot of positives. And as the cross-platform systems become ever more robust, it may be only a matter of time before native development eventually becomes a thing of the past.

At the moment, I’m getting pretty interested in Ionic, which is a framework for building mobile apps on top of Cordova , which in turn can build the apps for iOS and Android. I’ll post more in future about how I’m getting on, and also a little more on some adventures in native app development.



Raspberry Pi Setup

I’ve been a big fan of the Raspberry Pi for a few years now, having started out with a Model A and then moving to a few Model B+. Now I have 3 Raspberry Pi Model B that have been sitting in my drawer (along with lots of other accessories) and waiting for a chance to do something with. So yesterday I finally dragged them out of their boxes and decided to at least get an OS installed onto each of them.

My professional background is in statistics and so-called data science, so I have looked previously at networking some RPis together to make a Hadoop cluster. However, given the sheer speed (or lack of it) that is not my intention currently. But I am interested in learning and doing more.

With the variety of Operating Systems that are available I figured it would be nice to install a different OS on each Raspberry Pi 2. I opted for Raspbian (being perhaps the most widely used and supported), OpenELEC and was curious to try out Ubuntu MATE release as well , given I tend to use Ubuntu as my preferred Linux distro.

I’ll bring my updates as I play around more with each of those and look at some of the accessories I have, which seem to be increasing more and more as the weeks pass by!

Can take the boy out of Lincolnshire…