ZiangZhao1227 / poke-pocket

We will develop a Pokemon application based on the Kotlin language, which will call the Pokemon API to display information about all the Pokemon. We will also develop further to make Pokemon appear randomly on the map, and related AR functions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PokePocket License

PokePocket application is based on the Kotlin language and will call the Pokemon API to display information about all the pokemon. Each pokemon's background color based on the dominant color of the pokemon in a particular view. We are also implementing a map feature where users can catch pokemon by collecting pokemon balls on the map. We will also develop an AR feature where users can interact with the poke balls on the map.

If you want to run this app

  • Clone the repo https://github.com/ZiangZhao1227/poke_pocket.git
  • Open project with Android Studio
  • You need to generate your own Google API Key in order to use the Google Maps feature, all you need to do is go to for Google API Key, log in or create a Gmail account and follow the instructions there.
  • Also you need to install Google Play Services, you can find it by going to SDK Manager and selecting SDK tools in Android Studio, it will show the list of tools that u can install, scroll to find it.

Tech stack & Open-source libraries

  • Minimum SDK level 24
  • Kotlin based, Coroutines + Flow for asynchronous.
  • JetPack
    • LiveData - notify domain layer data to views.
    • Lifecycle - dispose of observing data when lifecycle state changes.
    • ViewModel - UI related data holder, lifecycle aware.
    • Room Persistence - construct a database using the abstract layer.
  • Architecture
    • MVVM Architecture (View - DataBinding - ViewModel - Model)
    • Repository pattern
  • Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
  • Moshi - A modern JSON library for Kotlin and Java.
  • Glide, GlidePalette - loading images.
  • TransformationLayout - implementing transformation motion animations.
  • Material-Components - Material design components like ripple animation, cardView.
  • Custom Views
    • ProgressView - A polished and flexible ProgressView, fully customizable with animations.
  • Internal sensor - accelerometer
  • Follow material design guidelines recommendation
  • Accessibility checked
  • Fragments
  • Use 3 out of 4 basic components - activity, broadcast receiver, service
  • Have AR related functionality
  • GoogleMap API

Architecture

PokePocket is based on MVVM architecture and a repository pattern.

architecture

App preview

Open API

PokePocket using the PokeAPI for constructing RESTful API.
PokeAPI provides a RESTful API interface to highly detailed objects built from thousands of lines of data related to Pokémon.

Presentation Link

Presentation

License

Designed and developed by 2021 Ziang Zhao and Maksim Pasnitsenko.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.




About

We will develop a Pokemon application based on the Kotlin language, which will call the Pokemon API to display information about all the Pokemon. We will also develop further to make Pokemon appear randomly on the map, and related AR functions.

License:Apache License 2.0


Languages

Language:Kotlin 100.0%