Your creative journey starts here.
- Unlimited access to every class
- Supportive online creative community
- Learn offline with Ulearna's App
DON'T BE AFRAID OF GOING MOBILE
Since we're talking about learning something different than your regular web development, I think we got one more thing worth exploring. As a frontend developer, you don't have to limit yourself only to the **web** frontends. There are other types of applications that you can create while utilizing your skills.
Mobile development is one such a field. You might be a little confused now. It's perfectly understandable. You may think *Mobile development. Aren't mobile apps made using Swift or Java, or Kotlin? I don't know those languages; I'm just a JavaScript developer at best, and I have plenty to learn here. I don't need another language or two, and there are probably some frameworks involved as well. Well, that's true, but let me explain before you toss this book in the corner, or more likely the device you are reading this on, thinking that we don't know what we're talking about. We do, trust me.
ENTER REACT NATIVE
The answer is relatively straightforward - React Native. It's probably the most mature of all the frameworks you can use to develop mobile apps using Javascript tooling. If you're already familiar with React, going for a ride with the Native brother might be fairly accessible and painless. All the rules you already know can be applied here as well, with some minor changes here and there.
For example, you don't use *divs* in your JSX here, we got *views*. But they're used in a similar manner. You can still use Redux or Context if you like; almost all those standard JS libraries you are used to working with are at your disposal. You don't use CSS directly, but the styling is made to look and feel like CSS.
There are a few more differences like that, but you get the gist. Now you may ask, * That's it? Just a few li"le changes and my React app becomes an iOS or Android app?* And my answer is - almost.
You'll still have to learn how each platform works, how it is configured, how you can debug your apps or why navigation works differently. But for the most part, you can even skip using the dedicated code editors like Xcode for iOS or Android Studio for well, Android.
It might sound a bit less straightforward than I promised before, but as a frontend developer working with all the complexities of Webpack, Linters, transpilers, etc. is it really that much harder? I don't think so.
React Native is one of the best paths to take from web to mobile development
OR GO FULLL-NATIVE
There is one thing about this chapter that I don't like. We've been talking about learning something different in the previous chapter, expanding your horizons, and getting out of your comfort zone. I was trying to encourage you to be brave and bold, like a true coaching mentor, sort of.
And now we're ensuring you that you can be a mobile app maestro with almost all the skills you have and maybe just a sprinkle of new knowledge that you shouldn't be too scared of learning. You know what? I got something even be"er. And that's the thing worth looking at if you truly want to go all in.
Leave the JavaScript world behind you. Or don't, you don't have to burn the bridges, you can do both. But what I'm trying to say is, if you are going to try building some mobile apps, maybe try doing it with the languages and frameworks they were meant to be created with. I would not make such a recommendation a few years before. Things have changed since then, and I think that proper native mobile development is more accessible than ever before. Why is that?
Languages have changed, and so did frameworks. One thing is that Swit is more of a friendly language than Objective-C (the primary language for iOS development) was. But this alone is still not something that would make me recommend this to the front-end developer so frivolously. Swit is a big step up, but the way UIKit and Autolayout (think of it as UI framework for iOS) work is different from what you already know. To the point that it'd be quite a bit of an investment to learn all that while trying to kickstart your web developer career.
Swit UI is the answer. It's a framework that can be a replacement or a fantastic companion for the UIKit. But Swit UI's major advantage is the **declarative** style of defining the interface in code. And this might be similar to the way you've been writing your HTML or JSX. In a way, you know, we are talking about a completely different language that has its own quirks and features. Still, overall, Swit UI is definitely more comprehensible for a web developer like you.
NOT ONLY IOS
Now, you may say that I'm only talking about Swit and iOS, and what about the Android? That's because I assume that you are at least familiar with the HTML and maybe even React or Vue, and based on that skillset, I think that iOS, with its current state and the Swit UI, is the more beginner friendly of those two.
If you are not the type of person to be discouraged by that, you can try Android first. But for the sake of your sanity, don't go for both of them at the beginning. Try focusing on one of those platforms and understand it until you feel comfortable using it.
It's is going to immensely help you when switching to the other one in the future. That's because they are not that different in their core concepts, and if you understand how the mobile world is spinning, you'll be fine. The implementation details are what differs enough to make you confused if you'd tried to understand both of those concepts at once.
When it comes to Android, the developer experience has considerably improved since the Kotlin language introduction. Nowadays, Kotlin is a first class citizen at the Android framework and you can use it for all your projects, instead of Java. If you happen to know Java already, because someone has recommended it to you as one of the first languages to learn, because of unlimited job opportunities blah blah... Or maybe you had to learn it at some point in your formal education, you're set.
You can still use Java for your Android projects, but keep in mind that Kotlin is probably the future of this platform, even Google itself is using Kotlin for their apps now. Personal preferences aside, Kotlin is also more of a loved language than Java among developers, and it's meant to solve many of Java's issues.
The other cross-platform advantage of this language is that its syntax is quite similar to Swit's. This could help you if you'd ever like to get familiar with iOS in the future. The same goes for Swit developers. If you know it, you should be able to understand the Kotlin code without issues.
saidshah Ahmadi
Front-End Developer
0 Comments