When I started programming professionally two years ago, being an Apple fan, I rode the Swift wave. It was clear, easy to understand, and seemed beautiful compared to Objective-C, which I never really learned to use, but can read well enough.
With my first few apps complete in the App Store, I had the itch to learn more, so I turned to Android and Java. The transition was surprisingly smooth, and I discovered that Java and Swift have more in common than not. Sure, there are some frustrations, like needing to remember ALL THE SEMICOLONS!!! And there are way too many different types of objects. I mean, there’s Integer AND int. String AND string. What?
By the time I had completed several Android apps, I understood the concepts now and how they came about. I even made a post about iOS/Swift and Android/Java conversions to help those who were following a similar path. Sure, Swift was simpler, but it is also (for now) Apple only.
While looking for a multi-platform approach to programming, I explored RemObjects Elements compiler, which lets you code cross-platform in Swift! At first I was ecstatic. However, I soon learned that this was a DIY solution with not enough support for a still support-needing newbie like me. While the tools seem to work as advertised, the debugging and setup were confusing to me. I would try it for awhile, give up, come back a month or two later, try again, and still ended up giving up.
Meanwhile, I decided to move on and explore desktop environments. Transitioning apps from iOS to MacOS was both easier and harder than I expected. The code re-use was amazing, but the difference in methods on classes with the exact same name drove me nuts! Next, I delved into Windows-side, with Visual Studio, C#, and UWP. C# is very similar in syntax to Java, which made this transition fairly painless. It was fun to see the three (Apple, Android, .NET) different approaches to UI. Apple’s Storyboards are great for beginners, because there’s literally no coding involved at first, just drag and drop. Yet when you want to make fine-tuned changes, I find XML (Android) and XAML (.NET) simpler to understand, since you can see the visual AND the code side-by-side. Having already worked on websites for years, the syntax of XML/XAML is similar enough to HTML to pick up right away.
Finally, I learned that the Xamarin tools for Visual Studio were now free to try and use for individual programmers! With Xamarin I can make an ASP.NET web-based app, with partner apps on mobile devices, and share a single code base for the business logic! The only thing that needs to be tailored to each is the UI. (Note: I know that Xamarin.Forms is a cross-platform UI builder, but I have heard less than positive reviews, and I’m going to stick with building native UIs for now).
So, what am I building? Well, I’ve been a teacher all my life. I would like to build solutions for other teachers and schools, to help teachers quickly and effortlessly do the paperwork tasks they need to do, and free them up to spend more time face to face with students. Stay tuned for more info!