My Learning Path | Mobile App Technologies
In this article I will share my learning path I use to learn Mobile App technologies.
My Background:
My career starts from 2017, I started as a Web Developer using Core php. Then after 1 year I moved towards Mobile Application development. I started learning iOS Development because of my friend who motivated me.
Then I pursue my career as a Mobile App Developer.
Why I am capable of writing this article because I have not only worked on iOS also I have learned below Technology
- Android
- React Native
- Flutter
- Python Django (Will discuss in other article)
I am totally a self learner, During my learning time I created multiple small apps. Lets discuss which path to follow.
- Language Basics:
First step is start learning basics of Language. Main things to cover
- Variables, Data Types
- Loops
- Switch Cases
- Functions
- CallBacks
- Enums
Now you can go with Framework.
- Framework installation:
Installing and setting up Framework. I will discuss further related to this in the end.
- Lets Start Learning Framework:
1. Component Positioning and Using Multiple Components (TextField, Buttons etc):
When I start with new framework first I start with component positioning or in other terms Constraints.
First I check how to place components in Center, top and at bottom.
Then I try to make few Screens not focusing on colors or designing of component just placement.
Also Use multiple components in it to get familiar with components
2. TableView/ListView:
After positioning I work with tables.
Tables will teach you multiple things like actions, using list data type call backs.
3. Scroll View:
Scrollviews are tricky for many Developers. So get hands on it.
4. Styling Components:
After constraints we will be moving towards Styling.
Styling is very vast to discuss, But I will tell you few points to start with.
- Start Defining Constants in a Separate File. Like Color constants, Size Constants, Fonts Constants.
- Add Few Fonts and Try to use them
- First Using constants give components Styling.
- Now create Themes globally and use them as Styling.
5. Create Separate Common Components:
Now you are capable of designing apps. Lets Move towards Quality.
Start Creating separate component. For Example
- Create a Separate Component of Textfields, Which will be common all over app.
- Create Common Buttons, take action callbacks and properties from Screen.
- Component for cells in Tableview/ListView.
- Create other components also like this.
6. Navigate to Another Screen & Passing Data between Screens:
Now on button press move to another screen. Also pass some data
Now on this stage you are more familiar with Designing Screens and components, Giving Styles.
Lets Move towards some advance Stage
1. Base NavigationBar:
I usually create a base Navigation Bar and use that in all over the App. This will help to keep it consistent. (I will share that in Another article for Flutter and iOS for an idea)
2. Routing Helper:
I always create a common class/handler to Route between screens. The feature of that function is to take three things
- Screen Name (which will be an enum)
- Routing type (push, present, modal, root)
- Params to be pass to another screen (if any)
Now Only one line will be use to navigate to any screen.
3. Networking:
Networking/API Requests are most important part of any App. I always try to make it separate from controller/Screen.
first Implement API request to screen in order to get familiarity. Now observe which part of the request is necessary for screen and which is irrelevant to any screen or we can say common for all screen.
So In my observation Models are the main thing which any controller needs to be handle. Lets Further divide this in sections.
- Models
Create Models: I prefer to create 2 Common models in my case I have a generic model like this:
{“code”: 200,
data: <Any>,
error: null
}
Here I use Generics <T:Codable>:
GenericModel<UserModel>
So in this way you will not have to use these three keys again and again.
I Usually create 2 layers for network
1. Network Handler
2. Data Handler
Data Handler will call Network Handler. And screen will call Data Handler
- Network Handler
Now Create a network helper where you’ll be using Library to call APIs. But Make in that way it will take all the things from Data Handler, Like
- Params
- Method
- url.
My Next article will be for this Handler in which I will be using Enums for all this.
- Data Handler:
This class will be use for Parsing models and any modification needed for controller.
For Last Part you can learn State Management for advance data handling.
This is my jouney for learning any new language or Mobile App technology.
Feel Free to add your comments because
“There is Always a room for Improvement”