Swift: Learning through doing
When I first started learning to code I nearly gave up after a few days.
It’s because I was reading tutorials and information pages, I was playing with example code and getting confused and bored in equal measure.
Then I discovered video tutorials – through YouTube, Udemy, Lynda and more. Again I nearly gave up through boredom. It’s because I was following along with example code.
It wasn’t until I stumbled on a free Udemy course by Geeky Lemon Development that things started to click. Run by Aaron Caines, the course taught code by actually building an app.
I didn’t expect to ever release an app – it was about a new hobby and having fun. It’s still about that really.
As I say I had no plans to release an app at all – that was until I took the Geeky Lemon course on Udemy.
After writing the basic app, designing it and adding in adverts and a way to turn them off – he talked me through publishing it.
Before I knew it I had an app live on the App Store.
Tap Stars went live on my birthday and is still available for download – a new version is in the works now I know much more about Swift and iOS.
Tap Stars by Ryan Morrison
Since then I’ve completed dozens of courses, followed online guides and watched YouTube videos – to get to a point where I’m confident in my ability to build basic apps and games.
The idea was that I learnt by building. I gained much more knowledge much more quickly by following guides and coding along with others to build a full app than any amount of reading about variables could ever teach me.
In fact I’ve recently completed an alternative child friendly calculator app – rather than a single screen to do everything you have an add, minus, subtract, divide, times and square root screen.
I followed a guide but diverted significantly from his code to do it in a way that suited my style better. I’ve also started working on a macOS version to practice crossplatform work.
I’ve got seven apps on the App Store with another one coming soon. Then there will be a gap while I take a rest, enhance the apps I’ve already publish and work on bigger projects.
All in my spare time as a hobby.
You can find my apps by searching for Ryan Morrison on the Apple App Store. I’m working on my first Android App now.
I thought I’d share a few of my unpublished projects that I’ve worked on through lessons, playing about and following guides.
I’ll publish some to GitHub so you can play about with them as well.
From a version of Pong to Breakout and Space invaders – gaming through SpriteKit has been a fun way to learn to code in Swift.
It’s the classic, the original and the iconic. Pong is the game that kickstarted a revolution and my version lets you change the background and the ball colour.
It’s the classic brick block game. Ball hits paddle, ball bounces off paddle and hits brick. Brick breaks and player gets a point. Ball hits floor player loses.
Aliens slowly descend on the Earth shooting at you as they fall. You shoot back and try to kill them before they reach Earth. I drew the artwork, made the background music and put it all together.
Flappy Bird meets Australia – its Flappy Koala. Try to get through the trees by constantly tapping the screen.
Noughts and Crosses, quizzes, mind reader, animals and emoji games.
From a simple temperature converter, which was my first iOS App to an app that speaks for you, while not as glamorous as gaming, apps have provided a great learning environment.
Bored British Dad
An early experiment with YouTube and video. I hard coded links to my YouTube videos and used a web view to play them.
Big Cloud weather
Pulling in data from an open weather api and shows you the current forecast for any city you search for. Will also add a five day forecast and shows feels like weather.
Draw It Now
A simple drawing pad app I built for my four year old to play with. You can customise the colours of the brush size. A very simple tool for him to draw things.
That’s it. It’s a working Xylophone using textures to look slightly more realistic. It plays the corresponding notes when you hit a panel.
Timers, calculator, notepad, to do list and more.