The Winnipeg Swift group!

In my travels around the internet I have yet to come across a group for people in Winnipeg, or anywhere in Manitoba for that matter, who are programming in Swift, or just starting to learn it, and want to meet up to share tips, collaborate and have some fun. Naturally there should be some place online to converse and interact in addition to the occasional meet up.

If this is something you are interested in then you can message me on Twitter @ManitobaNinja or @Third_beach, or leave a comment below. I have also set up a Slack channel, swiftwinnipeg.slack.com , so you can stop by there and say hi as well! If there is enough interest then we can set up shop online somewhere and go from there!

Follow up on “So your app has bombed”

About a week ago I had put up a post called “So your app has bombed“. I won’t rehash the details so if you want to read, or reread, what it was about, you can click here to do so. The short version is that after launching my first app, Are You Faster Than, it did poorly in terms of downloads so I had gone back and reflected on why that was and what lessons I had learned from it.

After I initially wrote the post I figured that was going to be the end of that app and that I would move onto other things. But a couple of interesting things happened. Read More

Getting to know the mapping and geo-service choices for iOS and Swift developers

When I decided to start to learn Swift and iOS development it was the thought of developing really interesting geo-apps that gave me that push to do so. I already had a background in Geographic Information Systems (GIS) so I understood most of the theoretical aspects behind geo-services. But when it came to coding and knowing what services a developer had available to them that was a different story. When I started to research the topic there really seemed to be a lack of information about it. It existed, but it was disjointed, with no one source really giving me even a majority of the information I was looking for. This is why I decided to write this article, along with several future companion pieces. It is not meant to cover every little detail, but, it should offer enough of an overview that you know where you need to start and how to plan your course of attack in your own app!

This article is about understanding the frameworks and services that you as a developer have available to you. We will start by discussing Apple’s Core Location framework for location services which is the heart and soul of any geo app. Without an understanding of this framework you cannot build location based and geo-services into your app. From there I will move into Apple Maps and the MapKit framework which is what many people will use for integrating features such as maps, points of interest, and directions, into their apps. And then I will go over a number of 3rd party options for developers who need functionality or customization that is beyond, or different, from the scope of what Apple offers. Read More

A collection of Swift tutorials.

With Swift into it’s second year of life in the public there are more and more tutorials appearing on the internet everyday which is a boon to new and experienced programmers alike. Of course there is a lot of rubbish out there to sort through. many just rip off other peoples work, some don’t get into enough detail to be helpful, and others are just not well written. I have compiled a list of what I think are some of the best tutorials currently out there on the interwebs.

A couple things to note. I did not include anything that was behind a pay wall, I just wanted to focus on what was free in this instance. This is also not an overly long list because I wanted to focus on collections and resources that are really worth while. And if anyone has any they think should be on the list then let me know and I will definitely take a look! So without further ado let’s get started.

Hacking with Swift

Though most of this list is not in any particular order this site really should be at the top. There are currently 37 individual tutorials online! And there is a full range of topics covered so you can pick and choose the ones that are most interesting and most relevant to you. They are structured in a logical, easy to follow way with good explanations on what is being done and why. The tutorials are free but if you find that you’ve really gained a lot from them you can donate as a way of saying thank you (and I would encourage it to help make sure this resource keeps going and continues to be updated with each update to Swift as well). Read More

So your app has bombed …

The scenario that doesn’t get discussed too often on developer websites and forums is what exactly happens when you create an app that no one cares about? Despite all the time, and effort, and thought you put into it, or whatever promotion you may have done, or how great it seemed in your head, no one wants to download it. For someone who is new to development this can be a crushing blow to your ego and motivation. But it is almost certainly going to happen to you at some point, maybe even multiple times, and there are some valuable lessons to be learned from it.

As you might guess I wouldn’t be writing this article if this wasn’t something I had experienced myself. So I will start with a very quick summary of how I got to my own day of reckoning. About a year and a half ago I had decided that taking up iOS development was something that I really wanted to do. It was sparked by a number of ideas that I’d come up with that I wanted to put out into the world, and the release of Swift, which for someone with no programming experience, seemed like the ideal language for me.

As I began reading, watching videos, and starting to code, I realized that a lot of the ideas I had were either not quite possible, or well beyond what a beginner could do. I didn’t let this get to me though. Instead I decided to create an app that was more within my reach and would give me much needed practice writing in Swift, and using Xcode. The idea was simple, an app that let you know if you were going slower or faster then a selected animal, appropriately called Are You Faster Than A … ? I’ve added a screenshot below to give a general idea as to what it looks like

.screen322x572

So over the course of a few months I put it all together. Finally I was happy with how it looked, and how it felt, so I went through the process of getting it submitted to the app store and after a few weeks and a few failed attempts it was finally up!

And no one really downloaded it. In the course of a few weeks there were about 15 downloads. This was a bit discouraging. So I went back. I added more animals to select from, and I changed my in-app purchase model so that all but a few of the animals were unlocked and for those looking to donate, if they liked the app, they would receive a super rad Shiba Inu as a thank you.

Once again I did my submission, watched it get released into the wild, and nothing. Just over a dozen downloads took place in the first week and then it fizzled back to a steady stream of zero. At this point it was officially a bomb.

Before I go any further I want to make a brief side note. When I originally put up this post I did so rather quickly and put down a number of thoughts about the experience that I was having at that moment in time. After it went live, and after a few comments I realized that I could have done a much better job going over why the app was not successful, in addition to talking about what I had learned from the experience. So everything from this paragraph on has been rewritten so that it more closely reflects what I wanted to discuss and get across to readers. So let’s start with the most important part of this experience…

…why did the app bomb?

There are a number of reasons why it bombed. The first is that no one knew about it. A really successful app will at some point take on a life of its own and through word of mouth or via social media and websites it becomes self promoting. It generates buzz. It takes on a life of it’s own. However you want to describe it.

But, before it gets to that point it has to be marketed, promoted and people need to be directed towards it, and persuaded by something more than just “everyone is downloading it” to give it a try. It could be sending out emails to websites and blogs telling them why they should review and talk about it. Perhaps you buy advertising on a digital advertising network or a podcast. Telling everyone you know to download it, and try it, and talk about it. Whatever it is that you decide you need to do to promote and market your app doesn’t matter as much as simply doing something.

And that was my first mistake. I sent out some tweets, and even had a small recommendation from a site, but I never pushed and pursued it in any kind of meaningful way. No one really knew it existed, and I wasn’t trying to change that. Even though it is the coding and design work and creation of a product that lead me to do this, if I want to make a real go at it, then I had to accept that self promotion is also a key element that cannot be ignored.

The second reason has to do with the app itself. Ultimately it was a fun idea, but beyond an initial test run of the app, what would keep the user engaged and make them want to use it again? The answer was not much. Starting off simple was a conscious choice to not overly complicate things, and make it more likely that I would complete the project in its initial form. And that was still the smart approach. But there are other features that would make it far more interesting and engaging. One that I have implemented, and will be in the next release, once the review process is done, is fact cards for each animal so that you can see some basic information about them. Other ideas that are in the back of my mind, and just require a bit more experience to implement, are social features, challenges, saving top speeds, quizzes, and further expanded fact cards. With these elements it will still be possible to keep the app simple but offer a lot more reason for the user to continue to use it!

Finally, it also bombed in part because having a hit app was never really the goal in this instance. I came up with the idea because I personally thought it would be fun, and it covered a lot of aspects of iOS development and Swift that I wanted to learn for other projects I had in mind. That I put it on the app store was a bit of an after thought when I started to see how it was turning out. And that is something that might seem small but is really important. If you are not passionate about your app, or even passionate about sharing it with as many people as you can, your not going to be motivated to promote and market it and do the coding and design to make it really fantastic experience! If you don’t care, no one else will, and it will almost certainly bomb. Beyond it failing…

…what else did I learn from this experience?

Going through this process was also instructive in a lot of other ways. I will jump right into what are the most important take away points for myself:

  • Being able to go back and see what a mess the underlying code was in the first version of my app was both frustrating and exciting. Trying to build on top of poorly laid out code caused many hours to be wasted as I refactored and restructured the program to be far more functional, readable, and more efficient. But it was super encouraging to be at a point where I could recognize my past mistakes, and fix them!
  • Doing as much pre-planning and storyboarding (the pen and paper kind) makes a huge difference in helping you organize how your program should look and be structured. When done right it can serve as a roadmap or checklist for what needs to be done next and makes your project both more efficient and less frustrating (at times).
  • There is no sense programming way beyond your skill level. I was able to complete the project because even though I still had to learn as I went, it was still somewhat within the scope of my understanding. The times when I had the most amount of trouble was when I tried to do something that was well beyond my capabilities. Pushing yourself is important, but to a point, and finding that balance is important if you want to keep learning but not put walls in front of yourself.
  • I was having fun doing it all! For all the challenges and long nights and moments where it didn’t seem like I was getting anywhere I was still really enjoying coding and designing and learning. And if your doing something your not enjoying, what’s the point?

So what next?

For the time being, this will likely just continue to be an app that I work on because I simply find it fun to do so. I like going back and seeing what I can refactor. I will probably keep adding new features as my knowledge of Swift and Xcode grows, and when I am able to do so with a decent amount of confidence. If that is all the app remains as then thats quite alright because building it was still a great learning experience! And if I do one day decide that it has gotten to a point where I think a lot of people would really enjoy it, well, now I also know that I will have to step into a different role and do the promotion and marketing that is required.

 

And when I have an app bomb in the future it will likely be related to a different set of reasons and circumstances but as long as I, and anyone who goes through it, can take a few lessons away from it you at least have a much better chance the next time out!

 

 

 

 

 

Okay, now I understand why the cloud is so great!

At around 3:15pm, on a quiet Sunday afternoon, I was working away on my 6 year old MacBook Pro, doing some coding and enjoying a coffee. Despite its age it was still working alright. It was a bit slow at times, and it had some weird quirks lately, and the battery was all but done so I had to keep it plugged in all the time. But other then that it was a machine that had served me well, and would continue to do so until at least next fall, I had hoped.

And then as I was working away in Xcode it shut off on me. My mind went to the usual suspects; maybe the charger wasn’t connected properly and the battery had been drained. Maybe the power went off in my apartment. Maybe the charger itself had just died. After a few minutes I realized that it was probably something serious. So at 3:20pm I tossed my laptop and gear and into my messenger bag and quickly drove to the Apple Store to get someone to look at it before they closed their doors in just under 1 hour and 40 minutes time.

Read More

Sidebar: 2015. Year 0 of the streaming revolution

For many years now there has been an endless parade of articles talking about the end of cable and the “inevitable” shift to content delivery via the internet and streaming. Often people lauded their own cord cutting experiences as they dropped Shaw or Comcast or Rogers in favor of Netflix and Hulu. Every time a major television content provider hinted at a possible change towards streaming it was held up high as further proof.

But, with the possible exception of HBO actually offering a pure digital subscription option, this has not played out as people expected. Sure there are lots of apps now for CBS and NBC or other channels that let you stream their content on your computer or over your TV. But they still require a cable subscription. So it is value added, but hardly a radical change by any means. The well entrenched cable and television producers, and distributors, have by and large balked at making this transition and spent their time trying to protect the status quo instead of moving forward.

Read More