Project 3 is your opportunity to really let your creativity shine! You will have the basic app requirements, provided by Vice, but it is up to you to design everything. This app will allow the user to browse Vice's news articles using a photo-based interface.
Your work must:
- Hit the Vice API (see below for a full list of available endpoints and categories), which provides access to all of Vice's latest stories in JSON format, including photo thumbnails for each story
- Allow the user to browse through Vice's news articles using an interface that is photo-based, rather than text-based (Flipboard is one example of what your app could look like)
- Allow the user to click on a photo and read the article to which the photo relates
- Provide the user with some mechanism by which to filter stories based on one or more of the following:
- Keywords
- Tags
- Topics
- Location
- Include at least 2 prototypes
- Include user stories based on your research and feature prioritization in a Trello board for the complete flow of your app
- Integrate with the Twitter and/or Facebook APIs to allow sharing of content via social media
- Look great in both landscape and portrait modes and reflect Material Design principles
- Include at least one Notification feature (e.g. reminder, alarm)
- Include automated testing (and manual testing if needed) to cover your app.
- Use JobScheduler to manage periodic background API calls
- Not crash or hang and should handle for when networking/internet is slow or unavailable
- Have code that is semantically clean and well-organized
Bonus:
- Allow the user to download photos, manipulate them by adding text, etc. (image manipulation libraries will probably be helpful here...) and then share their manipulated image via social media
- Integrate additional APIs (news, other content, social, etc.)
- Integrate with a mapping and/or navigation API
- Integrate with a messaging/communication API such as Slack
- Allow the user to save, bookmark, or ‘like’ content within the app
As always, your app must adhere to General Assembly's student code of conduct guidelines.
If you have questions about whether or not your work adheres to these guidelines, please speak with a member of your instructional team.
Project planning:
- A completed research plan according to the template provided in class
- Competitive research in a Google Sheet
- Written user personas
- A list of prioritized features
- A project plan presentation (there will be an in-class lab for this)
- Completed user stories
- A link to your team's Trello Board set up according to Trello's suggestions
App:
- A final, working version of your app
- Working cloud synchronization using JobScheduler and API integration
- A git repository hosted on GitHub, with frequent commits dating back to the very beginning of the project. Commit early, commit often
- A
readme.md
file describing what the app does, and any bugs that may exist - At least one screenshot in the
readme.md
- Automated tests for your code - unit tests and Espresso tests
- Complete as much of the layout as possible before working on your logic.
- Write pseudocode before you write actual code. Thinking through the logic helps.
- Test functionality as soon as you complete it. Don't start working on a new feature until all the existing features are working!
- Android API Reference
- Android API Guides
- Creating a Sync Adapter
- Twitter for Developers
- Facebook for Developers
- http://vice.com/api/getvicetoday/<:page>
- page: integer
- returns items from the vice today feed
- http://vice.com/api/getmostpopular/<:page>
- type: string (‘video’ | ‘blog’) video for videos, blog for text and gallery
- returns items for the most popular feed by type
- http://vice.com/api/getmostpopular/<:type>/<:page>
- page: integer
- type: string (‘video’ | ‘blog’) video for videos, blog for text and gallery
- returns items for the most popular feed by type
- http://vice.com/api/getlatest/<:page>
- page: integer
- returns items ordered by publish date
- http://vice.com/api/getlatest/category/<:category>/<:page>
- category :string
- available categories listed below
- :page integer
- returns items by category ordered by publish date
- http://vice.com/api/getlatest/<:type>/<:page>
- type: string (‘blog’ | ’video’ | ’gallery’ | ’dos-and-donts’)
- blog for text, video for video, gallery for gallery, and dos-and-donts for DnDs
- page: integer
- returns items by article type ordered by publish date
- http://vice.com/api/getepisodeparts/<:id>
- id: integer - ID of an article
- returns all OTHER articles in the given article’s episode if it associated with an episode
- http://vice.com/api/article/<:id>
- id: integer - ID of an article
- returns all api data for the given article including other episode parts if applicable
- http://vice.com/api/series/<:id>/<:page>
- id: integer - ID of a series (show or column)
- page: integer
- returns all articles within a given series
- http://vice.com/api/getallshows/<:page>
- page: integer
- returns a list of show series
- http://vice.com/api/getallcolumns/<:page>
- page: integer
- returns a list of column series
news, music, sports, tech, travel, fashion, guide, nsfw, photo, comics, stuff, film, festivals, gallery, noisey, thecreatorsproject, fightland, motherboard, food, interviews, culture, column