melihaksoy / android-kotlin-modulerized-cleanarchitecture Goto Github PK
View Code? Open in Web Editor NEW๐ Example modularized android application with single activity written in Kotlin
License: Apache License 2.0
๐ Example modularized android application with single activity written in Kotlin
License: Apache License 2.0
Create example use cases with using new material library components
Current state has multiple activities. Goal is to introduce single activity approach with deeplink navigation.
It's com.melih.list
, should be com.melih.launches
.
Classes such as Api
, ApiImpl
, daos etc. are public. They should be internal and closed off from outer access.
Right now project has build types but not product flavors. It'd be nice to demonstrate them.
Adding CONTRIBUTING with descriptions and current state.
Possibly move it to base for handling errorData
out of the box. This may require introducing a new generic for viewModel
in base.
Right now fetching rockets are sequential:
Fetch -> Save -> Return
This should be async. It's good to take al ook at Room's LiveData
support. flow
can be replaced with liveData
builder in BaseInteractor
in this case.
Ticket here -> https://issuetracker.google.com/issues/139793883
Update library versions. Room's new Flow
support might be option to replace suspension.
This is due to translationY
NetworkInfo
is deprecated. Should check how to achieve same functionality with ConnectivityManager
.
Setting adapter to null would fix this leak
Extract query processing logic and reduce complexity
Need to add search functionality that runs on different feature, that will present query results in a separate list. We should use https://launchlibrary.net/1.4/launch method - there are examples under section.
Documentation: https://launchlibrary.net/docs/1.4.1/api.html
A good approach might be using gradle as in here: https://jeroenmols.com/blog/2019/06/12/modularizationtips/
Right now feature module & fragments inside are not scoped. Add scopes for dependency hierarchy.
Boradcasting might be an idea to worth looking, just need to experiment.
Right now repository only fetches 10 responses statically defined. Introduce paging with paging library.
Right now core
uses api
to provide repository
as usable to other modules that include it. repository
should be included exclusively instead.
AppModule
contributes activities of features. This contribution should be moved to corresponding module.
Use material library to apply styles and themes, make use of attributes that platform uses for better effect.
Right now repository is a single module using persistence and network. Network and persistence can be separate modules.
Some modules depend on concrete classes that are in other modules. This can be a good case to apply dependency inversion.
Righ now it's com.melih.list
somehow. Should be com.melih.detail
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.