CryptoApp (pet project as example)
The main screen of the application provides an updated real-time list of the 10 most popular cryptocurrencies by click on which a new screen will open with more detailed information about the chosen cryptocurrency.There is also a horizontal orientation, in this case the screen will be "shared" in half, in one part of the list, in the other - detailed information by pressing.About the solutions and technologies used: the application is built according to the principles of pure architecture and injection of dependencies (based on Dagger2).The data image is implemented on RecyclerView (through ListAdapter and ItemCallback), the screen with detailed information is implemented by a fragment, the same fragment is used for horizontal orientation.The data is loaded using the services implemented through WorkManager every 10 seconds, the data is obtained from the server according to the API, the coruts (suspend function) are immediately used, which allows the service to stop its performance for 10 seconds before the following iteration.There is also a mapper in which classes are converted from domain to dto from data layer and vice versa.The data is stored in the database and taken from there, so even without the internet the latest information will be transferred.On the main screen we can see a list of 10 most popular cryptocurrencys which updates every 10 seconds, on click second screen will be opened, there user can see more detailed information about selected coin.Also there is a land orientation in which main screen "splited" in two, where in the first part will be located list and in the second one - detailed information if we click on some coin.About technologies and realizations: the application is created according to the clean architecture and dependency injection principles (using Dagger2).List is created using the RecyclerView(ListAdapter + ItemCallback), screen with detailed information realized as a fragment, the same fragment is used as a part of the main screen in the land orientation.Data load occurs every 10 seconds using services (WorkManager) from the server according to the API, also here I used coroutines (suspend function), which allows the service to stop itself for 10 seconds before the next iteratiom.Also there is a mapper, where I transfer dto classes to classes from domain and vice versa.The data saves to the database, so we can see the most actual information even without connection.#Android #Android #Kotlin #Mobile #Mobileapp #Android #Mobile Development #Kotlin