Building Apps and Chasing Dreams: My Adventure into Mobile Development and the HNG Internship
A journey to becoming a finalist
Being a mobile developer is not just about writing lines of code to create a mobile application. It is a role that allows you understand the tools and technologies at your disposal to create engaging and functional applications. Also, conveying these skills and expertise to potential employers and clients.
What is Mobile Development?
Mobile app development is a series of procedures that involves writing codes to develop software for mobile devices.
It involves a combination of technical skills, creative, problem solving to convert an idea into to functional user friendly mobile application. The mobile market has a vast potential because of its wider reach to user and provision of convenience with personalized experiences.
Mobile Development Platforms
These platforms are the foundations upon which mobile applications are built. Each platform comes with its own set of unique features and advantages, and understanding these is crucial for any mobile developer.
These platforms usually include a variety of tools and services to help developers design, test, and deploy mobile apps more efficiently and successfully.
There are generally two types of mobile development platforms, which are
Native apps development platform
Cross-platform application development platform
Native App Development Platforms
Native app development platforms are built to create apps for specific mobile operating systems, such as iOS or Android. Native app development platforms provide you access to native APIs and tools to create apps that are optimized for speed and user experience.
Cross-Platform-Application Development Platforms
These platforms enable developers to design apps that operate on several mobile operating systems while maintaining a single codebase. This can be a more efficient and cost-effective solution for businesses looking to reach a larger audience without having to create different versions of their app for each platform.
Some unique advantages of mobile app development platforms are:
Ease of use: Mobile app development platforms frequently provide a user-friendly interface as well as a library of pre-built components and functionality to assist streamline the development process. This is especially important for businesses new to mobile app development.
Integration: Mobile app development platforms provide integration with cloud-based services and tools. This can ease the development process by eliminating the requirement for developers to install and manage their own servers and infrastructure.
• Cross-platform compatibility: Some mobile app development platforms enable developers to design apps that operate on several mobile operating systems while maintaining a single codebase.
Common Software Architecture Patterns
Mobile developers can choose from a variety of architecture patterns, but the three most common are Model-View-Controller (MVC), Model-View-Presenter (MVP), and Model-View-ViewModel.
Model-View-Controller Pattern
This architecture pattern is the oldest and commonly used when developing simple applications dividing it into 3 parts which are:
Model: Manages the data and business logic. Also it manages the state of the application, data changes and manipulation.
View: Handles the presentation layer and user interface.
Controller: Acts as an intermediary between the Model and View, handling user input and updating the View. This patter may have more than one controller.
Fig. 1(GeeksforGeeks)
PROS | CONS |
1. Reusability | 1. Difficulty to manage larger applications |
2. Testability | 2. Coupling may become difficult on the long run |
3. Separation of Concerns |
Model-View-Presenter (MVP)
This architecture is derived from the MVC but in this case the Controller is replaced with a Presenter. The app is also divider into three parts also;
Model: Manages the data and business logic.
View: Displays the data and captures user input.
Presenter: Acts as a middleman, handling the presentation logic and updating the View.
Based on performance this offers high reliability because the hinderance between frames is reduces.
Fig. 2(GeeksforGeeks)
Pros | Cons |
1. Separation of Concerns | 1. Boilerplate Code |
2. Testability | 2. Complexity |
3. Flexibility |
Model-View-ViewModel (MVVM)
This is variant of MVC that is useful for complex user interface applications. It was introduced by John Gossman This architecture promotes modular and testable codes. This is possibly by separating the view and the model. For very simple applications this might be too complex and unnecessarily complicated. It consists of three components also;
Model: Represents the data and business logic.
View: Represents the UI.
ViewModel: An abstraction of the View that handles the presentation logic and binds the Model to the View. It can be called a bridge between the View and the Model.
Pros | Cons |
1. Separation of Concerns | 1. Boilerplate Code |
2. Modularity | 2. Learning Curve |
3. Testability | 3. Complexity |
Other Software development architectures includes Clean architecture and Redux Architecture.
As a developer, you must understand that selecting the appropriate architecture is not a one-size-fits-all decision, but rather a project-specific one. A thorough grasp of each architectural pattern, including its strengths and drawbacks, is essential for making sound judgments and producing code that is efficient, maintainable, and successful.
Mobile Development and The HNG Internship
As a mobile app developer, this is not just a tale of codes and technical terms. This is a story of my adventure with the HNG internship. I would translate this as a golden opportunity to make it as thrilling as possible. This would be an exciting and rewarding journey into the realm of mobile development. Most importantly, to gain the hands-on experience that the real world would offer.
I am motivated to building impactful mobile applications and eager to explore the innovative solutions that mobile development can offer.
However, technical growth is just one aspect of this journey. The HNG Internship also provides the perfect environment to develop soft skills. It's about learning to collaborate within a team, to communicate ideas effectively, and to navigate and overcome challenges that arise. It's about pushing myself out of my comfort zone and striving for continual improvement.
The HNG Internship, is a large-scale remote internship program designed to identify and develop the next generation of tech talent in Africa and beyond. It offers participants a unique opportunity to work on real-world projects, collaborate with other developer with the guidance of experienced mentors and develop their skills in a practical, hands-on projects.
It is a fast-paced, competitive online bootcamp for developers, designers, and other technical professionals. It is intended for those who wish to quickly upskill themselves, learn new technologies, and create things in a collaborative and enjoyable setting. It is not made for novices, but for those who have already begun studying and wish to advance 10 times quicker.
Key Features of the HNG Internship
Real World Projects
Intern work on project that simulate real life applications, giving them practical knowledge that goes beyond theoretical thinking.
Mentorship
Mentors are always ready to help interns gain insights into best practice.
Collaborative Environment
Working in teams to achieve a common goal is not missed out. This helps promote team work and communication.
Remote Working
Being a remote internship provides flexibility, allowing participants to work from anywhere. This is especially useful for people who have other obligations or desire a flexible work schedule.
Competitive and Challenging
A highly competitive internship with multiple stage that challenge interns to continuously improve their skill and prove their worth.
HNG internship is not only for interns, it can be also useful to companies that want to hire top tech talent that would fit in the tech industry. Interns who pay for HNG premium would be added to HNG pool of tech talent for companies and clients who want to hire.
Find out more at https://hng.tech/hire.