Giter VIP home page Giter VIP logo

droidconke2022android's Introduction

droidcon KE 22 ๐Ÿ”ฅ๐Ÿ”จ

Android app for the 3rd Android Developer conference- droidcon to be held in Nairobi from November 16-18th 2022.

This project is the Android app for the conference. The app supports devices running Android 5.0+, and is optimized for phones and tablets of all shapes and sizes.

Dependencies

  1. Jetpack Compose
  2. Coroutines - For Concurrency and Asynchronous tasks
  3. Ktor - For network requests
  4. Hilt - For Dependency Injection
  5. Crashlytics
  6. Coil - For Image Loading and Caching
  7. Lint Checks - Ktlint

Architecture

The proposed architecture is as follows;

Data

This layer will include;

  1. Network Calls
  2. Caching
  3. Storing and fetching Preferences.
  4. The repository implementation
  5. The relevant data models
  6. Relevant Mappers

Domain

This layer will contain;

  1. The repository
  2. The relevant domain models.

Presentation

  1. View
  2. ViewModels
  3. Relevant Mappers
  4. Relevant Models.

Features

App will have the following features:

  • Sessions
  • Feed
  • About
  • Home
  • Speakers
  • Sponsors
  • Authentication
  • Feedback

Designs

This is the link to the app designs:
[Light Theme] (https://xd.adobe.com/view/dd5d0245-b92b-4678-9d4a-48b3a6f48191-880e/)
[Dark Theme] (https://xd.adobe.com/view/5ec235b6-c3c6-49a9-b783-1f1303deb1a8-0b91/)

The app uses a design system: Chai

Dependencies

The project uses Versions Catalog to set up and share dependencies across the modules. The main reasons for choosing to adopt Versions Catalog are:

  • Central place to define dependencies.
  • Easy syntax.
  • Does not compromise on build speeds as changes do not need the module to be compiled.

To add a dependency, navigate to gradle/libs.versions.toml* file, which has all the dependencies for the whole project. This file has the following sections:

[versions] is used to declare the version numbers that will be referenced later by plugins and libraries. [libraries] Define the libraries that will be later accessed in our Gradle files. [bundles] Are used to define a set of dependencies. For this, we have compose, room, lifecycle and ktor as examples. [plugins] Used to define plugins.

You need to add your dependency version in [versions]. This is unnecessary if you are not sharing the version across different dependencies. After defining the version, add your library in the [libraries] section as:

compose-activity = "androidx.activity:activity-compose:1.5.0"

Moreover, if you have already defined the version in [versions], you define it as:

androidx-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "splash" }

Note:

  • You can use separators such as -, _v, . that will be normalized by Gradle to . in the Catalog and allow you to create subsections.
  • Define variables using CamelCase.\
  • Check if the library can be added to any existing bundles.

Material 3 Bottom Sheets

At the time of working on this app, Material 3 didn't have BottomSheet classes. Solution was to copy them from AOSP. They can be found in the com/android254/presentation/common/bottomsheet packages and have been used to do the Share feed and Fitter Bottom Sheets. You can find more information here.

Contributing

Contributions are always welcome!

See CONTRIBUTING.md for ways to get started.

Contributors

We would endlessly like to thank the following contributors

gissilali
Gibson Silali
wangerekaharun
Harun Wangereka
chepsi
Evans Chepsiror
jumaallan
Juma Allan
kibettheophilus
Kibet Theo
janewaitara
Jane Waitara
michaelbukachi
Michael Bukachi
BKinya
Beatrice Kinya
tamzi
Frank Tamre
keithchad
Keith Chad
Kagiri11
Kagiri
VictorKabata
Victor Kabata
johnGachihi
John Gachihi
GibsonRuitiari
8BitsLives .โค๏ธ
MamboBryan
Mambo Bryan
vickiekamau
Vickie Kamau
misshannah
Hannah Olukoye
rashanjyot
Rashanjyot Singh Arora
polojerry
Jeremiah Polo
etonotieno
Eton Otieno
Noah29m
Null

droidconke2022android's People

Contributors

bkinya avatar chepsi avatar etonotieno avatar gibsonruitiari avatar gissilali avatar github-actions[bot] avatar janewaitara avatar johngachihi avatar jumaallan avatar kagiri11 avatar keithchad avatar kibettheophilus avatar mambobryan avatar michaelbukachi avatar misshannah avatar noah29m avatar polojerry avatar rashanjyot avatar tamzi avatar vickiekamau avatar victorkabata avatar wangerekaharun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

droidconke2022android's Issues

[UI] Implement sessions card

Is your feature request related to a problem? Please describe.
Hey team, I am requesting to create the sessions card

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Write Up on the build pipeline

Is your feature request related to a problem? Please describe.
A clearer way to explain how the project's gradle files work and how to configure them.

Describe the solution you'd like

  • Documentation of how this multiModule multiFeature app works
  • Include in the readMe how to checkOut some the work and run it.

Describe alternatives you've considered
N?A

Additional context

  • For a beginnner looking to understand the codebase this may p[rove a challenge.

Add preCommit check commands to be run

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.