Future Enhancements - GideonsPromiseDev/GPMobileApp GitHub Wiki

Updating the App Icon

  • Prior to deploying the mobile app, you should update the app icon from the default flutter app icon to a unique icon that will help the app stand out on the app store
  • More information on how to accomplish this can be found here - Updating App Icon

Adding User Profile Pictures

  • The app currently has a static picture that is shown for all users when they view their profile. We want our users to be able to display any picture they want as their profile picture
  • A tutorial for accomplishing this can be found here Flutter Profile Pictures

Testing the App on Android

  • The app currently has only been tested on iOS. Flutter code is able to compile down to work on both Android and iOS, but the proper environment needs to be set up for each platform.
  • Each platform has a few platform specific configurations, so you want to be sure that you test your app on both platforms to ensure that all your users have a consistent experience on your app
  • The information for setting up the Android environment can be found here (Windows) and here (MacOS)

Testing App Functionality

  • Before releasing the app, you want to ensure that it behaves the way you expect. Writing tests is a great way to give yourself peace of mind that your app is functioning properly
    • Examples of things you would want to test are your widgets and network/api calls, so that you can be sure that the code you've written is correct
  • Here is the official Flutter documentation on how testing in Flutter should be done - Flutter Testing
  • Google also has an in-depth video on Flutter testing, and a code lab on it as well
  • If you don't have much time, here's a Medium article on testing as well

Chat

  • A key piece of functionality the app is missing is the ability for users to chat with each other. One of the reasons why Firebase was picked as the backend for this app, was because of it's support for this functionality
  • Since the chats will be stored within Firebase, you will also want to consider the costs of storing them in Firebase Firestore, and you also want to ensure that they are being stored securely. If someone gains access to your Firebase account, they will have access to all your users' messages and other data as well
  • There are many tutorials for how to accomplish this, here are a few:

Push Notifications

  • Push notifications are a great way for you to interact with your users. Maybe you want to send them a reminder that an event is about to occur, or you want to let them know that a new training has been posted. The way you will be able to accomplish this with your app is with Firebase Cloud Messaging (FCM).
  • FCM is a functionality of Firebase that allows you to send notifications to your users for a variety of events at no cost!
  • Here are a few links to documentation and tutorials to get you started:

Donations Portal

  • Currently, the app links to the Gideon's Promise web donation page when the donation link is clicked. To provide a more consistent user experience, the donation portal should also be created within the app, so that users don't need to leave the app to donate
  • You could take the existing code that is deployed on the website and incorporate it within the app, or you could use this tutorial from the Firebase documentation - Process Payments With Flutter and Firebase

Embedding Training Videos/Podcasts

  • Having an easy way to access videos created by Gideon's Promise from the app is another key feature that is currently missing. Luckily, there are a few APIs that will allow for you to easily embed videos into the Flutter app
  • There is a YouTube API that you can take advantage of to embed videos from the Gideon's Promise YouTube account directly into the app. A tutorial for using the API and building the associated widgets to display the videos can be found here: Embed YouTube Videos Within a Flutter App
  • For podcasts, there is a multi-part series on YouTube where developers from the Flutter team create a podcast app called DashCast

Newsletter and Blog

  • For incorporating the Gideon's Promise newsletter and blog into the app, I currently don't know of anything special that you would need to do to add them to the app. I think the easiest thing would be to directly link to them from the app to wherever they are hosted. When you click the link to them from the app, the device browser would open and the user could view them from there
  • The Connect With Us page within the app would be a good example of how to link to external content from within the app