Skip to content

Latest commit

 

History

History
124 lines (91 loc) · 7.38 KB

README.md

File metadata and controls

124 lines (91 loc) · 7.38 KB

Table of Contents

Introduction

In order to teach my students the fundamentals of programming for mobile devices, in 2017 I took advantage of the then-recent release of the Pokémon GO game (Android, iOS) and developed this Android version of the game similar to the one originally created by Niantic.

I used this application to demonstrate in the classroom how to program using the main features of a mobile device and I provided students with all the documentation for the application, without giving the source code at first. The students were divided into groups and each group had to implement the same project, which had already been previously analyzed and documented by me. In addition to practicing development technologies for mobile devices, this work aimed to provide students with the experience of participating in a software engineering laboratory, implementing a backlog of features as a team, following a pre-defined schedule and quality standards, all this using the SCRUM agile method to manage the project.

After the end of the course in 2017, I used this public GitHub repository to make the source code of this didactic experience available, thus allowing new collaborators to contribute to the evolution of this project.

▲ back to Index

Resources applied in Pokemon GO clone

To develop this project, I used native application development resources for Android. More specifically, these were the main resources used and demonstrated to students through this app:

  • Basic Android Concepts
  • Navigation between screens
  • Activity Lifecycle
  • GUI - layout managers
  • GUI - different types of views
  • GUI - Fragments
  • Threads, Handler and AsyncTask
  • Client-server communication with HTTP and JSON
  • Data persistence with SQLite
  • Intents and Intent Filters
  • Multimedia – audio and camera
  • Use of Maps (GoogleMaps API)
  • Geolocation
  • Support for different screen sizes
  • Moving an image around the screen using touch
  • Gyroscope sensor
  • Use of design and architectural patterns

▲ back to Index

Application features

As my goal with this application was purely didactic, not all features of the original game were implemented. I selected the following features for implementation:

  • Register user (trainer avatar defined according to gender)
  • Login/Logout
  • Search for Pokémon (walk around the map, seeing random Pokémon scattered within a dynamic radius updated according to the trainer's geolocation. Pokémon respawn every 3 minutes.)
  • Catch Pokémon (after clicking on a Pokémon on the map, an augmented reality simulation is presented using the camera, gyroscope, sound effects, and moving objects on the screen via touch)
  • Pokémon trainer profile (Catch history and more)
  • Pokédex (View all pokemon ever caught among the 151 pokemon of the first generation)
  • Pokédex details (See types of all pokemon and locations on the map where they have already been found/captured)

Screenshots

The screens that implement the main features mentioned above are presented below:



The navigation flow of the screens follows the storyboard presented below:



▲ back to Index


Demonstration Video

The video below (pt-BR) shows the app in action. It has some additional features compared to those mentioned above. These additional features were collaboratively developed by students of the Computer Science undergraduate course at the Federal University of Viçosa (Brazil) and have not yet been fully tested, so they have not yet been incorporated into the code of this repository. The code for this more complete version can be found in this fork.

Pokémon GO Clone presentation

▲ back to Index

Technical Documentation

The complete technical documentation of this project (pt-BR), including its functional requirements, non-functional requirements, structural and behavioral modeling can be found at this link.

▲ back to Index

About

This project was developed during the course "Programming for Mobile Devices" of the undergraduate in Computer Science at Federal University of Viçosa (Brazil). It sought to reproduce the main features of the original game, with a purely didactic and pedagogical purpose. This game is not marketed or distributed to end users.

The UFV Computer Science undergraduate course website published a note detailing this experience a little more. This note is in Brazilian Portuguese and can be accessed at this link.

  • Pokémon is a brand owned by Nintendo Co. Ltd., Creatures Inc., and Game Freak Inc.
  • Pokémon GO was originally developed by Niantic Inc., and Nintendo Co. Ltd.

▲ back to Index