Posts

Showing posts from 2015

Building my first mobile app: the journey - Part 3: App released

To start with part 3, I think it's best we have a recap of all the events leading up to this. So here we go, Previously in parts 1 and 2... I had a great life, a loving girlfriend, a job I liked etc etc and little did I know that it was the calm before the storm. One evening I had a really bad accident while I was out on my usual run, what happened was while crossing the road, I was hit by a car and left for dead on the street.  I suffered a few injuries as a result of the accident, one of which was a Traumatic Brain injury and I lost a lot of what was very dear to me. I lost my girlfriend(breakup), my ability to walk(at the time), my memory wasn't as good anymore and a number of other things. A few months after my accident, I started building my first mobile(iOS) app which would serve as a tool to help me in my daily life. That was a quick recap of the events, if you want to know more, you can have a read of part 1  and part 2 . Hmm, where do we begin? The app that I ...

My Day Todos: weather update and the lite(free) version

Over the last couple of weeks, I have been quite busy preparing for the holiday season i.e. I am hoping to generate some more sales for my iOS app, My Day Todos . I have been trying to update the app to add certain features and to streamline certain things to make it a more compelling case for people to buy it. In this post, I will briefly talk about the last two(1.6 & 1.7) updates for My Day Todos and a more detailed description of My Day Todos Lite i.e. the free version of the app. I will talk about some of the challenges to releasing it and my decisions to prepare a free version without loosing the essence of the actual app. All right, let's start with the updates, The 1.6 update: Weather info I always thought that the app would be awesome if it woke you up, told you what you are doing for the day followed by what the weather is like where you are. I initially added this feature to the first release but I decided to remove it as it wasn't fully tested at the time an...

Visualising data in a native iOS app using a Html5 charting library

Image
This is something that I had been meaning to add to  Html5StarterAppWithSwift for a long time and I was finally able to achieve that a couple of weeks ago. Background One of my past jobs involved me working on a web app that did all sorts of data visualisation i.e. drawing charts using Javascript charting libraries. Consequently, I have also applied my data visualisation knowledge to one of my personal projects i.e.  PTAapp  which should give an indication of how data visualisation fits into my background. Now let's talk about some of the tech that I used to build charts. In my past job we used Google Charts  to draw charts, which at the time at least required an internet connection to work. As I talk about in my previous post  I used morris.js  to avoid the issue of internet connectivity. Now that I am involved in making iOS apps and given my background it seemed natural for me to apply my charting knowledge to making iOS apps...and that is ...

Ionic app with a Django backend: Part 2 - The Ionic app

Image
In this post, I will continue from where we left in Part 1 of this series.  In part 2, I will talk more about the front-end side of things. Ahh, I have a background in web development, hence I call this front-end, but that's not the most accurate thing to say in these modern times. So the right way to say this is, I will talk about the Ionic app in this Github repository(IonicAppWithRestBackend) in more details in this post. So what did we do in part 1? In part 1, we got to the point of running our backend on the web server that ships with Django . To refresh your memory, this is how we got the backend server running, Clone the repo git clone https://github.com/cptdanko/IonicAppWithRestBackend Navigate to the backend project directory cd IonicAppWithRestBackend/backend/python_django/restBackend/ Note: if you are using Windows, you may want to change "/" to "\" in the above command. Once there you can run the backend server with the follow...

Ionic app with a Django backend: Part 1 - The backend

Image
In this post, I will be talking about my latest Github repository(repo);  IonicAppWithRestBackend  and delve into details about what it is and the problem it aims to solve. Introduction The idea of this repo is to provide code samples for both the backend and front-end for an Ionic app that communicates with a REST ful backend. The aim is to bring many disparate aspects of building a solution like this(hybrid app that talks to a REST backend) and to be able to see most of them as one complete solution. Also, a solution such as this ensures you can test your Ionic app locally during development. Still not clear? read on to find out what I mean. Note: Once I started writing this post, I realised that it would be a really long blog post, so I decided to split it into individual parts in hopes that it's an easier read. In part 1, I will be talking about what the backend solution is and how to get it running. Motivation In 2014, I started working on a project with someon...

My Day Todos: App state and some work involved post release

So it's been over a month since I released My Day Todos on the App Store (iOS) and I have been releasing updates for it ever since. So one of the things that I would share in this post is my realisation that having a successful app is not just about writing code, it's so much more than that. Now before anyone reading this says "DUH...", well yes it is a pretty obvious thing but it's the first time I have gotten first-hand experience. So let me share some of the things that have kept me busy post app release... Marketing or just getting the word out in general... My academic background mostly involves Computer Science research and all my past jobs involved me writing code for the most part(except that one job where I was consultant). Given my background I have little or no knowledge about marketing or for that matter how to make something stand out in a highly competitive market. Sure! I can add a unique feature to my app but then how do I let people know abou...

Xcode project template for native Html5 apps is now Swift2/Xcode 7 ready

This is a very short blog post to describe my latest commit to this template. The Xcode project template in question here is my open-source repo on Github, titled  Html5StarterAppWithSwift . This repo came to be while I was working on my iOS app, My Day Todos and if you need to know what that repo is, then have a look at this README file or this blog post .  The latest update to the repo: Swift 2 When Xcode 7 was released, so was Swift 2 and since this repo was built using Xcode 6 and Swift 1, I had to migrate it so people do not have any issues when working with this on Xcode 7. I think there may still be people working with Xcode 6 for at least another few months and hence, my original Xcode 6 compliant code is still there. I have added another branch to this repo called, SwiftOne which has the Xcode 6 and Swift 1 code. Upcoming features: Charting and what else? Very soon, I will be demonstrating how to use an Html5 based charting solution in a native iOS app via...

Showing a stop speech button only when a webpage is speaking

As evident from the evolution of my first iOS app: My Day Todos ; it started off as being a pure Html5 app until it turned into a native iOS app with Html5 powered UI. The app has a very significant text to speech component and before using native iOS API for it i.e. AvSpeechSynthesizer , the text to speech component was powered by the Web Speech API . I will not be talking  about why I switched the AvSpeechSynthesizer but rather a little problem that I had to solve while working with the web speech API. Problem: Show a stop button only when an utterance is being spoken So firstly, I think the Web Speech API is a lot of fun to play with and if you like to know more about it, you can either have a read of the spec  or do this tutorial  to get a feel of how it all works. Also when I talk about the web speech API, I am only talking about speech synthesis. All right, so what I wanted in my app was to show a stop button when the app is speaking i.e. reading out so...

First iOS App released: app store review experience and app roadmap

So the app that I have been blogging about for some time now has finally been released - it's called My Day Todos an iOS app and you can download it from the app store . This post this post won't be about me presenting a solution to a problem. I will just be talking about what the entire experience of releasing was like. What was iOS App Store review like? So I had heard heaps(lots) of stuff about how tough the app store review process is, so I was obviously a bit wary of it, so I just wanted to see how that process turns out to be for my app. So after I submitted the first build for review, I immediately a found a bug in the app, which I fixed however I did not remove that build from the review process just so I can see if the app gets rejected for any reason. What was the bug? ahhh, it was a really annoying bug and it was only there because, I had not covered all test cases when the app is first installed on a device. This was mainly because I had been usi...

First mobile(iOS) app submitted to the app store for review

I finally reached this milestone, I submitted my first iOS app for review to the Apple app store , polishing the app and doing some last minute testing and all kept me very vey busy for the last two weekends. I have been working on this app for over a year now and the following posts, Building my first mobile app: The journey so far - Part 1: The background Building my first mobile app: The journey so far - Part 2: App inception Building my first mobile app: The journey so far - Part 3: App released tell the story of how a major life event(tragedy) lead me to begin working on this app. Why reject the first accepted build? Two weeks ago on a Sunday evening, I had submitted my first build for review and I managed to get a response in 7 days and that build was approved to be released to the app store. So why didn't I? well after I submitted the build for review, I managed to find 2 very small bugs, to do with the initial state of the app, so those bugs could only be spotted ...

App update, discovering Protractor(testing) and an Angularjs State machine

So for the last couple of weeks, I have not be able to update my blog or finish a couple of the posts that I started writing. Well, I have...been a bit busy, with some the following things,  Testing my app I have been using the app( iOS ) on my iPhone for the past couple of months now, which is both good and bad. The good thing is I can test it and the bad thing is, I can use it every day. Part of the reason, I started building this app is to have something that I can and like to use everyday and since I am already using it, the incentive to release it is not as high as if it were something that I could not use. Anyway I did make some good progress over the last couple of weeks, like  Delete the app from my iPhone and do a clean install: this did help me find a few simple bugs that would pop-up when the app is first installed GET AN APP ICON, FINALLY! this was a bit of a hurdle and I thanks to Fiverr  and fivercrazyguy , I finally have my app icon. The day job ...

Promoting your product for public hospitals in Australia

In this post, I will talk about my experience of trying to have my open-source application to streamline Post Traumatic Amnesia (PTA) assessment to be used across public hospitals in Australia. Background So before I started working on my first mobile(iOS) app or came up with this architecture to build iOS apps , I was recovering from a rather serious accident from which I had a brain injury. You can read about what happened to me in the about page of my PTA app website. Anyway having a serious head injury means that there is potential for certain risks for which you have to exercise caution. In my case it meant that even after being discharged from the hospital or rehab, I could not go back to work for almost 2-3 months. So I had no choice but to stay at home.  The PTA app I love writing code and I love building software, so not going to work was something difficult for me to deal with at the start, but then I came up with a solution. I thought "hmm I know how the p...

Debugging a large, complex system(Java)

So for my main contract, I am working on a fairly large and a complex system i.e. it has many moving parts. So in addition to the large code-base that I have to maintain, the project also makes use of several libraries i.e.  jar files written by various teams of developers at a different location to where I work. However even though completely undocumented,  I do have access to the source code for most of those jar files. It is a Java based system which uses the Spring framework  and Maven , amongst other things. Problem As I mentioned this system has many moving parts and often when I have to add a new component to it, I rely on a few things from the jar files written by a team of developers far away. Every now and then, the changes made to those dependant jar files by the team of developers do not work or have some "sneaky" hard to find problems within them! so for code that I did not write, I need to find out why isn't it working? is it possible for me to f...