Cross Platform Mobile Development: Considerations

Recently, I’ve started working on a small side-project with one of my friends and this project requires a mobile app. Originally the idea was to do a cross platform mobile app using Xamarin (the reason for choosing Xamarin will be discussed later), but quickly we realized that this would not be feasible.

Market Share

Firstly, let’s take a look at the market share of phones running, Android, iOS and Windows. You can find the graph full here: https://www.statista.com/statistics/266136/global-market-share-held-by-smartphone-operating-systems/. Below is a quick snip of the graph for quick reference to the discussion further below.

mobile-os-market-share

When you mouse over the last quarter of last year (2016) you’ll notice that Windows is sitting at a mere 0.3%. Targeting a mobile app for such a small portion of users does not seem feasible at all (esp. for a small side-project).

When you look at the Android vs. iOS percentages, these are at least a little reasonable with iOS sitting at 17.9% and Android sitting at a staggering 81.7%.

Cross platform considerations

We had then considered, “let’s make an iOS and Android app, using Xamarin”. Since Xamarin gives us easy tools to create both apps, however, there was one small problem. After creating the Xamarin cross platform project, we came to understand that creating iOS apps, requires a Mac. This is apparently due to some licensing restrictions from Apple that require all iOS apps to be built and compiled on Mac computers.

Needless to say, we decided to scrap the notation of creating any cross platform application, since we do not have funding to purchase a Mac in order to develop an app for iOS. This is an unfortunate restriction that exists, however my friend and I both have Android phones which made the decision that much easier.

Verdict

I will leave you with the following food for thought. Considering that the percentage of user’s using smart phones is sitting above 80% for Android, how much visibility/usage would you lose if you solely developed for Android? My advice would be – if you do not have a Mac, do not worry about creating an iOS app at all, since the number of users that you will be losing will have little impact on your overall success. If however, you do have a Mac, and the extra time to invest in simply creating a native UI for the iOS app, go ahead and create an iOS app too. In closing though, I do not believe that it is worth any effort to create a Windows phone app, since the percentage is extremely small.

Xamarin choice

The video below was a great introduction into creating cross platform mobile apps using Xamarin and the link provided for the video jumps straight to a section where the speaker explains some aspects about mobile development.

One of the key points that stood out is that Xamarin offers native performance for the apps that you create. This is because it hooks into the native API and is able to build the app as a native app for the platform.

This is different from other tools (e.g. ionic) out there which he describes as a “hybrid” approach . With these tools, the app is usually a general purpose browser that runs your app. This gives no native performance and does not give access to native APIs.

For the above mentioned reasons, Xamarin is the best tool to create an mobile app – if you are looking to code the app in a C# environment. If you are a Java developer looking to create an Android app, Android Studio might be more applicable for you.

Let’s Encrypt (using certbot) tutorial

Let’s Encrypt is a free, automated, and open Certificate Authority. It’s goal is to get all web pages on the internet, encrypted (using HTTPS/SSL). When web pages are sent via HTTPS, the contents cannot be modified in transit, ensuring that the receiver of the content receives the intended information. There are also other benefits of using HTTPS which you can read about here.

I have written a tutorial on how to get your site set up and using HTTPS/SSL on my wiki site, which you can find here.

The reason I have posted the tutorial on the wiki instead of directly here is to allow quicker navigation between tutorial headings. WordPress does not allow this in it’s design but the wiki platform does.

You can use this platform to provide any comments you might have regarding the tutorial

Movie Review – The Hunger Games

The-Hunger-Games

The Hunger Games is a dystopian feature film that follows protagonist Katniss Everdeen (played by Jennifer Lawrence) and supporting protagonist Peeta Mellark (played by Josh Hutcherson). The movie plays out in a fictional city named Panem.

Panem is a futuristic city with 12 districts. As the district number increases, so does the poverty line. We see the people in district 1, as wealthy, stuck up snobs. They have very little care for others and are wasteful towards food and other amenities. Down in district 12, we see a high level of contrast. The people here are living in poverty, but have stronger values and band together as a community.

The actual Hunger Games is an event that occurs every year that involves 12 districts of Panem. As part of the Hunger Games, tributes fight each other to the death, as there can only be 1 victor!

Once every year, each district is required to offer up 2 tributes to take part in the Hunger Games. One tribute must be female and the other must be male. In the higher districts, it is not uncommon for tributes to volunteer to for the Hunger Games as they spend almost all their life training for the Games. As you peer down to the lower districts, names are chosen at random if no one volunteers.

Katniss and Peeta are the tributes from district 12 for this year’s 74th annual Hunger Games, as they leave their district you notice something rather unsettling, they are chauffeured into luxury. Immediately you imagine, oh, maybe the Hunger Games aren’t so bad… Until you remember that they are most certainly on their way to their death.

Once they arrive in the capital, the treatment doesn’t stop, they continue to be pampered and even receive the penthouse suite since the district you are from represents the floor on which you stay.

We then get a sense of the “competition” as all the tributes undertake their training and have a few interviews. I think that it would have been beneifical if we had a little more insight into some of the tributes, however, the other tributes are almost completely brushed over to get to Katniss and Peeta. Admittedly, the story is about them, but I think that insight into what makes some of the other tributes tick would have been valuable.

You will witness the training of the tributes to the battle of the death of these tributes in the battle area. As the tributes enter the battle area, you will be reminded of the most iconic phrase from the Hunger Games: “May the odds be forever in your favor”.

I give this movie 5 out of 5 bandicoots and highly recommend you give it a watch.

bandicoot-dancebandicoot-dancebandicoot-dancebandicoot-dancebandicoot-dance

Movie Review – Inception

inception-header

Inception – the word’s definition is simple, the start of something . The movie on the other hand is a lot more complex and intricate.

Inception follows a team of highly skilled professionals on a mission to plant an idea in a multi-millionaire heir’s (Robert Fischer – played by Cillian Murphy) mind, in order to get him to dissolve his father’s company. In order to get Mr Fischer to dissolve his father’s company, the idea needs to be planted deep in his subconscious so that he believe it is his own idea.

In order to do this, the team performs what is known as “dream sharing” – a method of entering someone’s dream – whereby the original dreamer is unaware that they are dreaming but everyone else knows that it is a dream.

Most of the movie takes place in the dream world – where time is highly exaggerated. As Cobb (the main protagonist – played by Leonardo DiCaprio) explains – normally five mins in the real world translates to an hour in the dream world.

The movie deals with some complex inner conflict which our protagonist is struggling with. With the help of Ariadne (played by Ellen Page), Cobb’s new dream architect, he is able to break through the walls of this conflict and face it head on.

The movie keeps you guessing and pushes the boundaries of what is real and what is a dream to the extent that you will be mesmerized  for the entire duration of this lengthy film.


Spoilers galore below this line


The movie begins with a man – Cobb – who washes onto the shores of a beach. Some security around the beach find him and take him to the “man in charge”. The man, unknown at this point, tells Cobb that he can recall him from “some half-remembered dream” many years ago…

The scene cuts and Cobb is now having dinner with another man, in a seemingly similar room. It is here that we learn that Cobb is an “extractor” – one who goes into people’s dreams to steal ideas.

We begin to understand that Cobb is inside a dream, and he is trying to get information from this man he was initially having dinner with – Saito. Things turn sour and Cobb is unable to get the information he needs from Saito’s mind, as Saito was able to realize what Cobb was trying to do.

Jump back to reality and we learn that Cobb is on the run from a corporation that hired him to get the information from Saito. Saito finds Cobb and his apprentice -Arthur – and makes him an offer which he can’t turn down. Saito’s request is (as he would deem) simple. Perform “inception” in someone’s mind. The start of a idea. Arthur proclaims that it’s impossible, but Cobb assures us that it is possible, the idea just needs to be simple! Saito explains that he wants a multi-millionaire heir (Robert Fischer) to dissolve his father’s company. The idea is seemingly more complex that Saito had originally lead us to believe.

Cobb needs to assemble a team to help him plant this idea into the mind of Robert Fischer. During the assembling of the team we learn that Cobb is a man seeking redemption for a crime which he did not commit. The murder of his wife. He longs to return to America to see his two children – which he had to leave behind due to the charges against him. Saito’s offer from earlier will allow him to return to America with the charges dropped. This is where Cobb gets all his motivation to complete this job.

Cobb finds all the members of the team he requires; a new architect (to build dream levels), a forger (to help impersonate others within the dream), a chemist (in order to produce a sedative strong enough to keep them in uninterrupted dream state), and a close friend of Cobb’s.

Mr Fischer’s father dies and it gives the team the perfect opportunity to enter his dreams – because the funeral is held in Los Angeles, a 10 hour flight.

The original plan is to go three levels deep (a dream, within a dream, within a dream). The reason for this is, each dream level compounds time giving them more time to work on getting the idea to stick in Mr Fischer’s head. However, as soon as they enter the first dream level, Mal (Cobb’s late wife) is in the dreams too, as part of Cobb’s subconscious.

The team manage to “kidnap” Mr Fischer in the first level, despite the obstacles that they face. Apart from Mal interfering with the dream, Mr Fischer has also been trained against “dream extraction” – which means that his subconscious is able to fight the invaders – with extreme force.

Once at the second level of the dream, Cobb decides to masquerade as “Mr Charles” – who is effectively the head of security for “dream extraction” security. This involves telling Mr Fischer, that he is in a dream, which can be extremely dangerous. However, this pays off and allows the Team to win over Mr Fischer’s trust.

They then proceed into the third level of the dream where Mr Fischer is unfortunately killed by Mal before he is able to unlock the safe – where the idea has been planted. This forces Cobb and Ariadne to go yet another level deeper, in order to recuse Mr Fischer, so that he can open the safe and can successfully have a new idea in his mind.

Cobb and Ariadne manage to find and recuse Mr Fischer, but at a cost that Cobb is left behind – entering limbo. At this point, we jump back to the scene where we left right at the beginning of the movie and realise that the man Cobb after washing onto the shore is Saito.

We are lead to believe that Saito and Cobb kill themselves which allows them to leave the dream state they were in on the plane. Once Saito awakens, he promptly makes the phone call to allow Cobb to re-enter America (free of charges).

Cobbs enters America and is greeted by his grandfather, who takes him back to his children. Cobb meets his children, but not before spinning a spinning top on the table. The significance of this top is that in the dream state – it is believed to spin forever. Before the top is able to stop spinning, the picture fades to black.

Raspberry Pi Home Surveillance

Today I have a special treat for you.

I have compiled my notes from a couple of years ago back onto a wiki format (on my wiki site) for everyone to have access to. The content that I have uploaded relates to a home surveillance project that you can do with a raspberry pi and a web cam.

To read more about how to accomplish this, visit this page here: https://wiki.newteq.co.za/doku.php?id=raspberry-pi:home-surveillance:start_here. It will walk you through a step by step tutorial from setting up your raspberry pi to having a home surveillance system set up.

Let me know what you think about the tutorial in the comments below. If you have any suggestions, you’re welcome to throw them in the comments too!