Swift UI vs. UI Kit

As my team embarks on creating our iOS app in Swift for the Bike Kollective, the question of which Swift toolkit to use to build the app came up – the newly released Swift UI or the time tested UI Kit? While both have their pros and cons, I thought it might be worth looking… Continue reading Swift UI vs. UI Kit

Collaborating on a Mobile App

Making the Most of the Capstone Project Do any students actually look forward to group projects? I’m not so sure. I’m not one of them. Trusting your grade in the hands of another student – especially one you don’t know – is not a terribly exciting prospect. However, the reality of a professional career in… Continue reading Collaborating on a Mobile App

Where to start?

When I began pursuing my B.S. degree in Computer Science, I had no clue where it would lead me, what area of programming would interest me, or whether I would even enjoy this field at all. Sure, I had dabbled in a few free Java classes online, but that doesn’t equate to a full degree. What sort of skills would I attain? And how would they contribute towards putting together a worthy Capstone Project?

Now that I’m here, I have a wealth of experience in Python under my belt, a taste of x86 Assembly, an appetizer’s worth of C/C++, and a newfound interest in mobile development with a basic understanding of Swift and Flutter. While I could stay in my comfort zone of Python, I think I’d much prefer to continue pushing into the realm of mobile development with Swift or Flutter.

Why Mobile Apps?

To answer the question of why I prefer working on a mobile app, it’s worth explaining why I decided to get my B.S. in Computer Science.

My original degree is in Film & TV Production. I graduated and spent 7 years working professionally in a variety of positions that utilized the skills I attained in with my degree. I produced videos for non-profit organizations, produced and edited viral videos for digital media companies, and I produced and edited online videos for film festivals. However, none of these jobs were particularly fulfilling – not to mention the unspoken rule that work-life balance is nonexistent in the industry.

At this time, a friend of mine who was a software developer saw my dissatisfaction and prodded me to look into software development. He thought I’d take to it, and he was right! Solving problems using my technical expertise and knowledge was a breath of fresh air. What’s more, as a new father, it was a field where job security, work-life balance, and was a real possibility.

According to CNN Money last year, mobile app developer is one of the best jobs in America. It’s also a field that is projected to grow by 19% over the next decade. This is a huge reassurance for me as a dad.

What’s more, SDKs like Apple’s Xcode and Google’s Flutter will allow me to draw upon my past career’s work with visual design when developing mobile apps. These programs use a more visual style that feels at home with my past experience using Adobe’s Creative Suite for video projects of all shapes and sizes. Mobile development really does seem like the best of both worlds for me.

Swift – Leader in iOS

As an iPhone owner, iOS development is immediately appealing. Plus, iPhones are the market share leader in the US. According to Apple, Swift, their new programming language started in 2014, is 2.6x faster than Objective-C and 8.4x faster than Python. Furthermore, as a native language to iOS, it’ll always perform better than frameworks such as React Native or Flutter.

However, that also means that Android apps are out of the question. At this time, Swift is only compatible with apps for iOS devices, such as the iPhone, iPad, Apple Watch, and Apple TV.

That said, Redmonk’s programming language rankings, which ranks programming languages based on their presence on Github and Stack Exchange, has seen Swift raise to the #11 spot in just 7 years. Additionally, Stack Exchange’s own rankings show it sliding into the top 20 languages with All Respondents as well as Professional Developers.

There are also a bevy of resources available to learning Swift. Not to mention, I took the Codepath iOS Course last semester, which was taught using Xcode and Swift. Coding in Swift is fast as well as error-proof, as Xcode will bring to your attention any issues or problems it notices immediately. Swift itself – created as a successor to Objective-C by Apple – is also a clean and easy-to-read language. Unlike Objective-C, which is based on C, a lot of the strict syntax stumbling blocks – such as semi-colons at the end of each line – are dropped in favor of a more Pythonic approach.

Swift seems like a great route to take, albeit a more specialized one.

Flutter – New Kid on the Block

Flutter is also enticing, as it allows you to develop applications that can simultaneously work on both iOS and Android devices. While iPhones make up nearly 60% of all mobile devices in the US, Android devices make up the remaining 40%. Additionally, Android far outpaces iOS in the global marketplace.

In the Stack Exchange rankings mentioned earlier, Dart, the programming language Flutter uses, ranks ahead of Swift in popularity. It has recently entered the top 20 in Redmonk’s rankings as well – no small feat for a C-style language created by Google in 2011.

As a language, Dart was created to be a successor to Javascript and focuses largely on handling UX and other front-end matters. While Dart still isn’t natively supported by browsers, it does power the Flutter SDK for mobile devices. It can be compiled for ARM and x86 processors alike, making it extremely flexible.

Flutter is then much like Xcode is to Swift – the SDK program that allows the user to create a mobile app with the language. While I haven’t developed as extensively with Flutter as I have with Swift and Xcode, the user-friendly and extensive documentation are very comforting. Plus, video walkthroughs like this Getting Started App have been helpful in getting down the basics. And taking the Mobile App course this semester won’t hurt either!

Final Thoughts

While Swift and Flutter both seem to have their own strengths, I’d feel comfortable developing a mobile app in either. Sure, I have more experience in Swift, but what I’ve seen of the Flutter SDK and the Dart language appear to be more similar than different from it.

Either way, Mobile App Development is an exciting and growing field, and my Capstone Project will be a strong stepping stone towards the profession of Mobile App Developer!

Hello world!

Welcome to blogs.oregonstate.edu. This is your first post. Edit or delete it, then start blogging!