GithubHelp home page GithubHelp logo

poke.dex's Introduction

Poke.dex

So one day, I saw someone post their Jetpack Compose pokedex app on /r/androiddev on Reddit as supposedly following the current "best practices" around Android app development. I took it as a challenge to build the same thing, but ignoring all the things that Google recommends on this particular season and/or that I might be required to like if I cared about the labor market.

Download

Go to releases to download the latest apk.

Tech stack & open-source libraries

  • Minimum SDK level is 21 (Android 5.0).
  • Java 17 based, utilizing Runnables posted to HandlerThreads and back to the main thread for asynchronous operations.
  • Jetpack libraries:
    • None really.
    • There are RecyclerView and SwipeRefreshLayout from LiteX, my de-appcompat-ified fork of several AndroidX libraries.
    • AndroidX and Jetpack aren't the same thing, are they? Or is AndroidX part of Jetpack?
  • Architecture:
    • Something MVC-ish I guess? I don't really like following patterns for the sake of following patterns.
    • I do sometimes end up with a pattern in my code by pure coincidence because that ends up being the most optimal way of solving the task at hand.
  • OkHttp3 for networking.
  • Appkit for some boilerplate and an image loader.
  • Gson for JSON parsing.
  • Parceler for one (1) class that I needed to be parcelable.
    • Yes it's overkill in this particular case. But then I used Parceler in another project and I liked it (I used an Android Studio plugin to generate parcelables before that). And I want to show off my Android stack to contrast it with the "best practice" one anyway.
  • Android's built-in SQLite for caching.
    • No fancy abstraction libraries on top of it. It's Cursors all the way down!

Open API

Poke.dex uses the PokeAPI to retrieve the Pokémon data.

FAQ

Is this project serious?

Absolutely. This is more-or-less how I've been doing Android apps for around 10 years, including ones used by millions of people.

Have you tried { technology.name }?

Probably not. I'm not very open to innovation in programming because most of the current "innovations" involve piling ever more abstraction layers on top of each other for no other benefit than to say "my code looks beautiful" or "this project can be worked on even by most junior of developers who need not understand the abstraction layers beneath the topmost one".

I do like where Java is going though, hence Java 17.

poke.dex's People

Contributors

grishka avatar

Stargazers

İ. Başar Yargıcı avatar Josphat Mwania avatar  avatar Kvar Izunia avatar viroth avatar  avatar Hanife K. avatar Ronell Salunke avatar Mike avatar Teddy Juhlin-Henricson avatar Balázs Gerlei avatar Nitheesh AG avatar 石見 仁志 avatar Willy N avatar Ivan Kim avatar Ruslan avatar Chetan Gupta avatar  avatar Leonid Titov, CS avatar Corium avatar bachiri Taoufiq Abderrahman avatar Bharath K Malviya avatar Дрюня avatar  avatar theapache64 avatar Reinaldo S.G. avatar  avatar Senya avatar Roman Dronov avatar Anton Tkachev avatar Anton Kazakov avatar Berkus Decker avatar  avatar Husam avatar Yohannes Tezera avatar Liam Heneghan avatar Irfan Nawawi avatar averson avatar Neven Jakopčić avatar  avatar Huy Nguyen avatar Aleksey Ivanovsky avatar Siarhei avatar  avatar Divyansh Kushwaha avatar Art Shendrik avatar Pavel Erokhin avatar Alexander Kolmachikhin avatar Nikita Kapli'tsky avatar wanjala stephen avatar Agesa Collins avatar jherrero avatar Tim Rijckaert avatar Mikołaj Pich avatar Alfredo Bejarano avatar Christopher-Marcel Esser avatar Mergen AGAYEV avatar TonyTang avatar မျိုးလွင်ဦး avatar Aldo Wachyudi avatar Aleksey Dolgiy avatar William avatar Lucas Yuji Yoshimine avatar Babajide Awodire Samuel avatar Bruno Azevedo avatar Erdem OLKUN avatar Pavel Korolev avatar Peter Musembi avatar  avatar Surya Pratap avatar Tarun Tatavarthi avatar Maxim Lebedev avatar Oleg Koretsky avatar Artyom Suhov avatar Tiberiu Manescu avatar Dionis Beqiraj avatar SACHIN KASARADDI avatar Joel  Muraguri avatar Ismaïl BENHALLAM avatar Fuad Gbadamosi avatar Mahyar avatar Boy Hoody avatar  avatar Abhishek Saxena avatar Pedro Guimarães avatar Abado Jack Mtulla avatar amos avatar Mike avatar Steven Huang avatar Alexey Illarionov avatar Nikita Bukhal avatar Atick Faisal avatar Ibrahim Ahmad (feyroozecode) avatar Elchin Orujov avatar Omer Quadri avatar James Mbugua avatar Behdad avatar Sebastiano Barezzi avatar  avatar Straussn avatar

Watchers

 avatar Alfredo Bejarano avatar Ehsan Setayesh avatar

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.