jeffchang5 / SplitDiff

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SplitDiff

This project is an implementation of the specs required by the Procore challenge criteria. The app requires Android 5.1 and above.

Getting Started

  1. Clone the Github repo.
  2. Open the project in Android Studio.
  3. Build and run the project.

Goals

  • Demonstrate a good understanding of software architecture and tooling that are important in maintaining a modern codebase.
  • Use MVVM to separate responsibilities from the view and create more easily tested classes.
  • Use Kotlin for its expressive, concise, and convenient features. Kotlin helps avoiding potential bugs caused by inconsistent nullability.
  • Use Epoxy to create highly structured boilerplate-free RecyclerViews
  • Use Architecture Components as a baseline for introducing Android best practices.
  • Sensible file and project organization.
  • Demonstrate the use of common Android libraries used commonly for modern codebases.
  • Error handling to create better UX for predictable conditions.
  • Handle a wide array of device definitions.
  • Use dependency injection with Dagger 2 to produce decoupled objects and services. Relying on Dagger- Android to avoid writing boilerplate code.

Features

  • Select username and repos to view pull request lists.
  • View a list of hunks of lines of code in a screen.
  • Hold on text to see between the before and after stages of the diffs.

TO-DO

Leaving to-dos is not always ideal, but sometimes necessary giving time constraints.

  • Testing is an important step for scalability and maintaining stability within the app.
  • Handle text formatting of the diffs needs much improving. Readability is low when code can be spread throughout multiple lines. More comprehensive architecture and design is needed for something this complicated.
  • Accessibility, a lot of devs often skip accessibility because it is time and resource costly. But offering accessibility makes customers for a lifetime because often you're the only product offering it.
  • Accounting for different language symbols.

About


Languages

Language:Kotlin 57.5%Language:Java 42.5%