Petit Ami is an iOS real-time pocket monster app created in Xcode using Swift. Users are able to adopt therir very own Ami companion which they can feed, play mini games with, and evolve.
As a user I want to:
- Adopt my very own Ami and name it
- Feed and take care of my Ami
- See my Ami's status levels (energy, hunger, age, etc)
- Play mini games with my Ami
- Swift
- Realm Database
The first step we took when creating this project was creating a backend that stored a user's Ami on their local storage. After creating the backend, we created a form that would log a user's Ami with a name to the local database. Our next step was to get the stored information to the frontend for the user to see. After successfully displaying the info to the frontend, we created the functionality for the buttons and made sure that it updated the stats in real time. We then tackled the decrementing of the different status bars making sure to store the information on the backend. Instead of hopping around different tasks, we made sure to collaboratively solve any hurdles our team was having to assure it wouldn't create bugs for other functionality of the app.
- Fork and clone repo
- Install repo onto local client
- Open app with XCode
- Press file -> add packages
- Paste this link into the search bar
https://github.com/realm/realm-swift
- Inside dependency rule click up to next major version
- Inside of the left box type 10.19.0 and leave the right box empty (should say 10.19.0 < 0.0.0)
- Click add package on the bottom right of the screen
- Check the box for realm and realmswift then hit add package
- Run app!
Some of the biggest major hurdles was having realm show the data realtime whenever it was changed. Whenever a button was clicked it would log to the database, but not show it to the user. To overcome this we created variables to make it appear as though the data was changing without refreshing the app. An unsolved issue we had was getting realm to communicate with a widget. We wanted to have all of the users stats show, but realm only allowed us to communicate within a certain scope of the app.
- Users can interact with their Amis (feed, hydrate, evolve)
- See pet status change over time
- Implement original art and music/sound FX
- Users can adopt multiple Amis
- Pet mini games
- Multiplayer functionality
- Evolve tree for pets
- Leaderboards/forums/share pets with other users
- Battling with Amis
- Integrate step counter to walk pet
- Different pet animations and aesthetic outfits
- Get repos linked up and upstream working
- Research swift
- Work on backend as group
- Finish backend
- Work on front end as group
- Research and work on stretch goals seperately
- Triston J. Palacios
- Bryan Nguyen
- Zach Brose
- Evan Karwowski