I am currently in my final term for my Bachelor’s in Computer Science, and the theme of this term is mobile development. I am taking my final elective which is an intro to mobile development course as well as my final capstone. For my capstone project my team and I are also developing a mobile application. I plan on spending most of this term writing about that project so I figured an introduction into my experiences with mobile development so far is a good place to start.
Prior to this term I haven’t touched mobile development. In my mobile class we are learning Dart and Flutter and so far I am very impressed. Most of my serious programming has been done in dynamically typed languages and as I’ve worked on larger projects I keep finding that I wish I was working with a statically typed language. I find it much easier to read code when types are clearly defined and for me it makes me stop and think through design decisions rather than throwing code at a wall and seeing what sticks.
Setting up a Flutter environment for developing on Android was very easy and well documented so I didn’t have any issues there. However, for my capstone project we were originally going to develop an iOS app. I quickly found out that without a somewhat recent Mac that is capable of running the newest MacOS getting a development environment up and running is essentially impossible. There are 3rd party tools that can sign an iOS app for you so that you can develop on Windows of Linux, but these require a paid Apple developer account. It was very off putting how difficult it is to get set up for developing iOS apps and I wish Apple wasn’t such a closed ecosystem. Especially with tools like Flutter where you can develop cross-platform apps it is frustrating that my ability to deploy them to multiple platforms is hindered by my hardware and paywalls.
So far I haven’t done a ton of actual app development, but I am learning the ropes of Dart and I have been able to get a few example apps running in both simulation and on a physical Android device. I am looking forward to learning more about mobile development in both of my courses and documenting my journey here!