Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Software developers are often challenged with building custom apps for different markets or different industries, or different customers from a base application template. These are often developed as white label solutions. These custom apps can improve branding and customer retention.
The user configures their App using a Web-based Wizard. The user navigates through simple easy steps to configure various features and complete user/app-specific information. The wizard stores the info in a secure AWS RDS database. When customers want to develop their own custom application, the amount of information they need to gather initially can be overwhelming. Each app store has different requirements for having developer accounts, code signing, generating certificates etc. The dashboard we built for our customer takes the users through a detailed widget to collect all the information.
Once all the information is collected and validated, the widget lets the user submit and build the application. When the user clicks the submit button, the app build workflow is initiated by sending a message to an Amazon Web Services (AWS) Simple Notification Service (SNS) topic. Using an SNS topic as the entry point for the workflow allows various subscribers to listen for app build requests and trigger any workflow steps. Examples can include billing, auditing, etc.
An AWS Simple Queue Service (SQS) subscribes to the SNS topic for any build request. When a message is received an AWS Lambda function is triggered. The Lambda function calls the Jenkins server with the correct configuration parameters needed to build the custom application. The Lambda function can also perform any additional validations if needed before invoking the build.
The Jenkins build agent pulls the template code from the Git repo (AWS Codecommit or Bitbucket). Then it pulls custom configurations from the RDS database and pulls any artifacts needed for the app from an S3 bucket. Then the Jenkins build agent merges the custom configuration to the template and assembles the custom workspace for the app.
Once the workspace is set up, the build agent invokes the fastlane pipeline to trigger the build for each platform. When the code is built and the app is packaged, the fastlane client automatically publishes the app to the corresponding app store. As the build is complete, users and DevOps staff are notified using different methods such as SMS messages, Slack channel notifications, email or other REST API calls.
Whether you maintain a handful of mobile applications or hundreds of applications, having an automated DevOps process helps with releasing your mobile apps in a reliable manner. DevOps has matured and is commonly adopted by web applications. However when it comes to mobile application development, this aspect is often overlooked. Having a DevOps framework that suits your workflow and quality control checks is an important part of developing and maintaining mobile apps.