CSCI 457 Assignment 3 – Biography Viewer Choose One Of Your ✓ Solved
CSCI 457 Assignment 3 – Biography Viewer Choose one of your favorite games, and implement an app that shows the biography of each character of the game
Design and develop an interactive application that displays detailed biographies of characters from a selected video game. The app must showcase a comprehensive list of characters in the main view, provide quick access to each character’s information, and allow users to personalize their experience by marking favorites. This project emphasizes effective use of object-oriented principles, particularly avoiding parallel arrays, by utilizing a dedicated class for character data management. Key functionalities include a scrollable list with icons and brief info, swipe actions to favorite or unfavorite characters, visual indicators of favorites, and a detailed view with enlarged portraits and biographies.
Detailed Requirements
The application should incorporate the following features:
- Main View – Character List: The main screen must present a list of all game characters using a table view. Each row should include a small icon representing the character and a brief piece of information (such as name or role). The list should be scrollable, allowing users to navigate through all entries seamlessly.
- Swipe Actions: Users should be able to swipe right on any character row to reveal two buttons: one to favorite the character and another to unfavorite. This gesture-based interaction provides quick and intuitive control over preferences.
- Favorite Indicator: When a character is marked as favorite, a checkmark should appear alongside their entry. Conversely, unfavoriting should remove this checkmark. This visual cue helps users easily identify their preferred characters.
- Character Detail View: Tapping on a character’s row should transition to a detailed view. This secondary screen must display a large portrait of the character and a comprehensive biography, including background, traits, and other relevant details.
- Data Management: All character information must be stored within a class representing a character, avoiding the use of parallel arrays. This class should include properties for the character’s name, icon image, portrait image, brief info, full biography, and favorite status.
Implementation Guidelines
- Use object-oriented programming practices to encapsulate character data within a dedicated class.
- Implement the list view with appropriate table view data source methods, displaying each character’s icon and brief info.
- Enable swipe gestures on table cells to reveal favorite/unfavorite buttons, updating the character’s favorite status accordingly.
- Display a checkmark accessory on favorited characters within the table view.
- Configure segues or programmatic navigation to transition to the detailed character biography view upon selection.
- Ensure that the user interface is intuitive, responsive, and visually appealing, aligning with the aesthetic of your chosen game.
Additional Tips
Consider persistence mechanisms if you want favorites to persist between app launches. You may use UserDefaults, a local database, or any suitable storage option. Also, ensure your code follows best practices for clarity and maintainability, including meaningful naming conventions and appropriate commenting.
Sample Screens
Refer to the attached figures (not included here) for sample app layouts demonstrating the list and detail views, along with swipe actions and favorite indicators.
Summary
The project aims to create an engaging, user-friendly app that highlights the lore and details of game characters through a well-structured and interactive interface. Proper implementation of class-based data management and gesture controls will ensure a polished final product.
References
- Apple Developer Documentation on UITableView and related controls
- Object-Oriented Programming Principles by David Thomas and Andrew Hunt
- iOS Human Interface Guidelines - Apple
- Swift Programming Language Guide by Apple
- Mobile App Design Best Practices by Adobe
- Persistence in iOS - UserDefaults and Core Data
- Gesture Recognizers in iOS Development
- Storyboarding and Navigation in iOS Apps
- Design Patterns in Swift: MVVM and MVC
- UI/UX Design for Mobile Applications by Google Material Design