A Slight Change of Tactic
(Fairly) Recently, I wrote about firmly beginning teaching myself to code in Google’s Dart. I chose Dart, as it allowed for not only the creation of websites and web based code; but as Google’s Flutter is what Android is to Java, it would allow me to continue to learn to make mobile apps whilst learning a different language.
One key problem with Dart, for me at least, is to do anything beyond a Dart library or a console application (of which I find little personal use); you must also be familiar with HTML and CSS. Admittedly, the basics of these are not overly complicated. Equally, using Google’s AngularDart components as they are is simle. However, either I’m being slightly dense, or there is NO documentation on how to theme them. I managed to figure out how to theme material-button and material-checkbox, but for the life of me couldn’t figure out how to properly theme say, material-tab.
As such, I was driven to postpone learning how to work with AngularDart and instead move to Dart libraries. HTTP Clients from dart:io and dart:html, whilst doing the same things, have their own limitations. dart:html works fine for Dart only projects; try and use it in a Flutter project? Nope. Use dart:io for Flutter compatibility? Get a Platform._version unsupported error, apparently.
Again, it’s important to note, I don’t really know what I’m doing; but it does seem that Dart probably isn’t the best language for someone to try.
Back to Not-so-Familiar Grounds
After having done no coding for a month or two, I had the ache. I wanted to return to what ignited my desire to learn to code in the first place: Android. The problem was that Java was just, boring.Then I remembered a language I’d heard about a couple of times around /r/androiddev and most recently at Google’s IO 2017: JetBrains’ Kotlin. Looking at the syntax for the first time was, slightly, intimidating. Looking deeper into it however, it is so much nicer than Java. It just looks better One of my personal favourite features is the data class. Simply construct a class and all getters and setters are automatically created behind the scenes. As I quite often use JSON based APIs like Firebase Database, or certain others through Retrofit; a simpler data Object is certainly welcomed.
For the foreseeable future, I shall be working with Kotlin. As AngularDart matures and documentation and guides mature, I may return. But for now, and at least for me; it’s just not new user friendly enough.
I have a couple of ideas for projects to flex my Kotlin, maybe a Reddit client? a GitHub client? (I really like working with REST APIs)