- We have our existing system in Oracle Database and we are using Oracle APEX for our existing applications.
- We want to build Native Mobile Application (iOS & Android) to build some part of the functionality of Oracle APEX web-application.
- We want to integrate native Barcode Scanning functionality such that device camera utilize its best capabilities.
- We want our existing users to access the application, although some features can also be able to accessible without user login.
- We need some more features like searchable product inventory, offline access, multi-lingual etc.
- Oracle APEX & ORDS
- We suggested to use Oracle APEX and Oracle REST Data Services to expose the data via RESTful APIs.
- We suggested to implement OAuth2 for RESTful web service to securely exchange the data.
- We suggested to use Flutter Platform (Made by Google) for Mobile app development.
- Flutter can generate iOS & Android build with single code base.
- Flutter provides native compilation with beautiful UI and good performance.
- POC (Proof of Concept) for Barcode Scanning
Before we really jump into anything else, we first build a small application for Barcode Scanning feature. Barcode scanning was the main capabilities we want to make it work without any compromise. Customer tested the POC app and satisfied with the result
- Version 1
Customer gave us green flag to begin with actual development after reviewing the POC app. We first analyzed the web application to identify design, font, icons, color combinations to draft a native mobile app design. Next, prepared project architecture, coding design pattern (MVVM), followed SOLID coding principles to build base structure for entire project. To allow a user to login using valid credentials, we designed & developed a login interface that uses REST API to securely pass the credentials to the server for authorization. Another screen that allows user to scan a barcode and view details of particular product. We developed a list of products screen that shows brief information of each product. We developed a detail screen of particular product to view the detailed information about the product.
- Version 2
STARTED – 12/11/2020
We finished Inventory management and also application supports multiple languages to view products, (e.g. English, Finnish, Norwegian, Swedish). User can manage inventory after login. User can add or update inventory amount.
COMPLETED – 27/11/2020
- Version 3
STARTED – 28/11/2020
We have provided support to view or search any product when user is not connected to internet. User can perform all the operations during offline, even user can scan the barcode and can search for particular product.
COMPLETED – 10/12/2020
- App Release and Deployment
In order to make the application available on Apple App Store and Android Play Store, we start the process with beta testing. For Apple (iOS, iPadOS), we used Apple’s TestFlight practice to distribute beta application to testers. For Android, we used Google’s dedicated Internal App Sharing practice to share the application among group of testers. Once customer gives satisfactory response of application testing we started application release with review team. Within a week, we got applications approved and make it live.
5 thoughts on “Use Case : Flutter + ORDS + Oracle APEX = iOS and Android Native Apps”
Nice work, we may have a similar requirement, and may I know how did you implement the authentication between Flutter App and APEX user account?
Thank you Vincent.
For this specific project – we have used Custom authentication apporach (storing user credentials in DB table).
Great work thanks
I’d like to create an App in Flutter using the idea of Offline first, storing the data locally in sqlite, to then synchronize with Oracle database when in internet zone. We are already developing in Oracle Apex.
The app need to receive periodically an upload of data to be used as Combo Box list, or List of Values, once it has several Forms to be filled (CRUD), and also upload photoes, excel or word docs. (that also need to be transferred as sync to the server)
Do you believe that flutter + ORDS + Apex can be the solution to my challenge?
Yes Nilton, you may prefer this by storing your List locally and sync them over when internet is available.