Skip to content

Nyasa is a mobile app version of nyasablog.com. This app allows content creators to create and publish blogs. Token authentication is used in this app during authentication. Users are required to register first and login to publish content. The app is written using Kotlin language

Notifications You must be signed in to change notification settings

Kanyandula/Nyasa

Repository files navigation

NyasaBlog app is a native Android application that interacts with the web app nyasablog.com.

Nyasablog.com was created for Malawian content creators to be used to publish Malawian related content.Software developers are free to interact with its Rest API that comes with the web app.


Features:

  • Kotlin:
  • Coroutines:
    1. Advanced coroutine management using jobs
    2. Cancelling active jobs
    3. Coroutine scoping
  • Navigation Components:
    1. Bottom Navigation View with fragments
    2. Leveraging multiple navigation graphs (this is cutting edge content)
  • Dagger 2:
    1. custom scopes, fragment injection, activity injection, Viewmodel injection
  • MVI architecture:
    1. Basically this is MVVM with some additions
    2. State management
    3. Building a generic BaseViewModel
    4. Repository pattern (NetworkBoundResource)
  • Room Persistence:
    1. SQLite on Android with Room Persistence library
    2. Custom queries, inserts, deletes, updates
    3. Foreign Key relationships
    4. Multiple database tables
  • Cache:
    1. Database caching (saving data from network into local cache)
    2. Single source of truth principal
  • Retrofit 2:
    1. Handling any type of response from server (success, error, none, etc...)
    2. Returning LiveData from Retrofit calls (Retrofit Call Adapter)
    3. Token authentication ( Creating an account, login and logout using django-auth-token )
  • ViewModels:
    1. Sharing a ViewModel between several fragments
    2. Building a powerful generic BaseViewModel
  • WebViews:
    1. Interacting with the server through a webview (Javascript)
  • SearchView:
    1. Programmatically implement a SearchView
    2. Execute search queries to network and db cache
  • Images:
    1. Selecting images from phone memory
    2. Cropping images to a specific aspect ratio
    3. Setting limitations on image size and aspect ratio
    4. Uploading a cropped image to server
  • Network Request Management:
    1. Cancelling pending network requests (Kotlin coroutines)
    2. Testing for network delays
  • Pagination:
    1. Paginating objects returned from server and database cache
  • Material Design:
    1. Bottom Navigation View with Fragments
    2. Customizing Bottom Navigation Icon behavior
    3. Handling Different Screen Sizes (ConstraintLayout)
    4. Material Dialogs
    5. Fragment transition animations

About

Nyasa is a mobile app version of nyasablog.com. This app allows content creators to create and publish blogs. Token authentication is used in this app during authentication. Users are required to register first and login to publish content. The app is written using Kotlin language

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages