My name is Sam if you haven’t already guessed that.
This blog aims to combine functional programming with mobile apps. Mobile apps are hard, and with the slow turn around in the store (A mobile app can’t be release to production 40 times a day), it’s important to get them right the first time. Functional programming helps with this.
If any of the following apply to you send me a message (at the bottom of the page) and I’ll see how I can help:
- Building a mobile app – Xamarin
- Development help with an existing app – Xamarin
- Automated testing of mobile apps
- Learning F# and/or functional programming
I started programming back in 2007, with a little VB in high school. Since then I have attended University (for both Management and Computer Science) and have found three passions within computer science: functional programming, mobile apps and machine learning.
I wrote my first mobile at the end of my first year at university, teaching myself Objective-C and the MVC design pattern, well before I had any understanding of what I was doing. It was hard, and I loved the challenge. It was especially rewarding when I got the app running on my jailbroken (I was a student) iPod Touch. As I progressed through my degree I pushed to code more and more apps for my assignments. This included ditching PhoneGap in favour of a Native Android 2.3 (Android 3 had only just been announced) as. Additionally I was also able to write an iOS (iPad) app for the MetService in Wellington, New Zealand (the app was never launched due issues out of my control).
Functional programming began before my third year of university, though when I started university it always bothered me that every course stated they would teach OOP, but no where was any mention of why this was good or what the alternatives were. During the end of year break between my 2nd and 3rd year I started teaching myself Haskell (I sought out the professors that did know the alternative to OOP). I thought mobile apps were hard, however Haskell was insane (given I was still a student and didn’t have the experience of what good looked like). I wrote one assignment (for a machine learning paper) in Haskell. My 4th year report featured translating Haskell into Scala which proved to be feasible.
After university I wanted to get paid for writing code, so mobile apps it was. I got a job doing this, and made a few mistakes.
As i wrote my code/apps, I started to understand why functional programming was so appealing given the difficulty of OOP. I was still learning FP on the side in both Haskell and Scala. My investigation for how to best combine FP with mobile apps turned up Xamarin and F#. A native app can be written while also providing code sharing across the platforms all without (or very little) mutable state.
I have been hooked on F# ever since!