Software Engineer
& Developer
Hi, I'm Akash Singh, A versatile, high-energy mobile application developer with the distinction of executing prestigious projects of large magnitude within strict time schedule , India
Technologies
Hi, I'm Akash Singh, A versatile, high-energy mobile application developer with the distinction of executing prestigious projects of large magnitude within strict time schedule , India
Android UI/UX Designer | Native Android Developer | Freelancer
A versatile, high-energy mobile application developer with the distinction of executing prestigious projects of large magnitude within strict time schedule.
Adept in analyzing information system needs, evaluating end-user requirements, custom designing solutions, troubleshooting for complex information systems management.Well versed with Android Application Development (Enterprise Mobility Solutions).
Proficiency in technical documentation, design, development and troubleshooting for Mobile Application Development (using via, Java, kotlin ,Jetpack Compose,Android Applications, etc.)
It's been more than one year of work with Akash, he has really a good hand in android app development, and as UX designer the solution I have provided to him, outpour after final development was fantastic. He is an overall good developer, his approach and work process are really awesome.!!!
Akash Singh was a unique one to work. His work ethics are pristine, and he is easily adjustable to a given situation. His ability to go out of his way to help others has made him stand out. Thanks a lot, man!. He is one of the most dedicated professionals I’ve worked with him College projects and is willing to put that extra help whenever you need it. His expertise as a Android developer is considerable, and it helped our team come up with more efficient solutions on different projects. His contribution is valuable to the side, and I highly recommend Akash and would love to work with him again.
Akash is very knowledgeable in all thing technology related and his work is timely!!
I've worked with many professionals, But Akash is a unique one to work. I had the privilege of working with Akash since 6 months in Sparx IT. He's multi-skilled person with vast knowledge. He's goal oriented team player, has a great attitude and is always willing to help another colleague.
I have work with Akash since more then 1.5 years is dedicated & curious developer, he have excellent knowledge about software development and passionate to develop robust software project & have ability to quickly adopt technical aspect, He have ability to handle whole project individually & extensively.
SOLID principles are an object-oriented approach that are applied to software structure design. It is conceptualized by Robert C. Martin (also known as Uncle Bob). These five principles have changed the world of object-oriented programming, and also changed the way of writing software. It also ensures that the software is modular, easy to understand, debug, and refactor.
SOLID is a mnemonic acronym.
It helps to define the five basic object-oriented design principles:
Single Responsibility Principle
Open-Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
The single responsibility principle states that every Java class must perform a single functionality. Implementation of multiple functionalities in a single class mashup the code and if any modification is required may affect the whole class. It precise the code and the code can be easily maintained.
The application or module entities the methods, functions, variables, etc. The open-closed principle states that according to new requirements the module should be open for extension but closed for modification. The extension allows us to implement new functionality to the module.
The Liskov Substitution Principle (LSP) was introduced by Barbara Liskov. It applies to inheritance in such a way that the derived classes must be completely substitutable for their base classes. In other words, if class A is a subtype of class B, then we should be able to replace B with A without interrupting the behavior of the program. It extends the open-close principle and also focuses on the behavior of a superclass and its subtypes. We should design the classes to preserve the property unless we have a strong reason to do otherwise.
The principle states that the larger interfaces split into smaller ones. Because the implementation classes use only the methods that are required. We should not force the client to use the methods that they do not want to use. The goal of the interface segregation principle is similar to the single responsibility principle.
The principle states that we must use abstraction (abstract classes and interfaces) instead of concrete implementations. High-level modules should not depend on the low-level module but both should depend on the abstraction. Because the abstraction does not depend on detail but the detail depends on abstraction. It decouples the software.
Node.js is a cross-platform runtime environment and library for running JavaScript applications outside the browser.
It is used for creating server-side and networking web applications. It is open source and free to use. It can be downloaded from this link https://nodejs.org/en/
Node.js also provides a rich library of various JavaScript modules to simplify the development of web applications.
It is used for server-side programming, and primarily deployed for non-blocking, event-driven servers, such as traditional web sites and back-end API services, but was originally designed with real-time, push-based architectures in mind.
Features of a good app architecture.
Separation of concerns. This principle means that different entities should be separated in the code. It helps with reusing those entities, systematizing development, easy debugging, and isolating frequently changing parts so they don’t affect others.
Testability. With appropriate architecture, it is way easier. QAs will find it helpful to write test cases and be able to test functionalities separately. You will avoid finding issues in runtime, which usually means a week-long fix.
Reliability. A well-chosen architecture is crucial to creating stable apps without major inconsistencies because it defines how parts of code interact with each other.
Scalability. Your app should have a solid basis for the buildup of new features and changes according to business needs. It also should be suitable for future renovations (e. g., new libraries, operating systems) in programming technologies.
Maintainability and ease of use. A good architecture simplifies code for both writing and reading. It can also result in a low maintenance cost.
The Model-View-Controller (MVC) is a well-known design pattern in the web development field. It is way to organize our code. It specifies that a program or application shall consist of data model, presentation information and control information. The MVC pattern needs all these components to be separated as different objects.
It represents the business layer of application. It is an object to carry the data that can also contain the logic to update controller if data is changed.
It represents the presentation layer of application. It is used to visualize the data that the model contains.
It works on both the model and view. It is used to manage the flow of application, i.e. data flow in the model object and to update the view whenever data is changed.
Every good developer wants and tries to create the most sophisticated applications to delight their users. Most of the times, developers achieve this on the first release of the application. However, with new feature addition, fixing the bug without putting a lot of consideration into the structure of the application code becomes difficult due to code complexity. For this, there is a need for good clean structure of code.
MVP pattern overcomes these challenges of MVC and provides an easy way to structure the project codes. The reason why MVP is widely accepted is that it provides modularity, testability, and a more clean and maintainable codebase. It is composed of the following three components:
Layer for storing data. It is responsible for handling the domain logic(real-world business rules) and communication with the database and network layers.
UI(User Interface) layer. It provides the visualization of the data and keep a track of the user’s action in order to notify the Presenter.
Fetch the data from the model and applies the UI logic to decide what to display. It manages the state of the View and takes actions according to the user’s input notification from the View.
Copyright © 2022. Designed by sky