Persona 3 Portable Helper App

The Persona 3 Portable Companion App is a native Android application I am developing using Xamarin. Its purpose is to serve as a convenient companion for fans and players of Persona 3 Portable, providing assistance without acting as a complete walkthrough.

The app will feature several key functionalities, including SLinks, requests, missing persons, important calendar dates, a persona compendium, and answers to school questions. The intention is to expand the app's features over time based on user feedback and additional ideas that arise during the development process.

The app will have a themed interface inspired by the game itself, with a theme selector allowing users to switch between two different themes, the male blue and a pink theme representing the female main character.

Navigation within the app will be facilitated by a flyout template, providing an intuitive and accessible menu for users to navigate between different sections and features.

Progress indicators will be incorporated throughout the app, allowing users to track their progress in various aspects of the game, such as SLinks and requests. 

Development of the app will progress incrementally, taking into account other projects, learning opportunities, and work commitments. The focus will be on building the app in manageable stages and fitting development time into the available schedule.

Stay tuned, as I will be updating my progress here with media and milestones as I go!

This is a Figma concept of the designs I plan to implement.  Some notes have been added to indicate where I should seek improvement after creating these Views, should I feel that they need more vibrancy.

After some INCREDIBLY inconsistent behavior from my previous method of saving checkbox state, I had to devise a new means of updating and saving the values bound to the checkboxes.  By overriding OnAppearing() and OnDisappearing(), I was able to serialize and deserialize my model's properties (with a bit of help from Newtonsoft).  When a page is navigated away from (OnDisappearing), the state of the checkboxes/IsCompleted properties are serialized into a JSON string, and the data is saved in Preferences with a unique key, giving each page its own data.  When a page is revisited (OnAppearing), the stored JSON string is retrieved using the corresponding key, and the data is deserialized back into the model class. 

P3PH Aeon Demo.wmv

The Social Links are done! It now initializes UI components, handles persona requirement indicators, and dynamically generates UI elements for rank-up details. Each rank-up section includes a rank number, completion checkbox, and collapsible content toggled by an arrow icon. The state of completion checkboxes is preserved using JSON serialization and Xamarin Preferences. Arrow icons' tap events control collapsible content visibility and icon rotation. The code centralizes UI management, interaction, and state persistence for efficiently presenting character SLink data. Persona 3 Portable has a unique color palette that is also now reflected in the design scheme, further enriching the user experience.