Top 6 steps to extensive Titanium App Build Automation

By James Tredwell on September 23, 2019

I have started my career in building Titanium app from three years. Inside Titanium mobile development projects at Hopinfirst, we, for the most part, create modules for bringing or potentially upgrading existing native SDKs to Titanium. Furthermore, to make that much more straightforward, Appcelerator presented Hyperloop. Hyperloop enables you to get to native code straightforwardly, dispensing with an extra intermediate module layer. You’re sponsored well for creating mobile apps with Titanium. 

But enough discussing the development part. There are some other significant parts inside the mobile application lifecycle, for example, testing and launching, we should discuss 

Testing and launching aren’t tedious or complicated. 

Test and app launching steps are not critical, but they can be tedious just as complicated. Testing and launching don’t need to be like this. This report will give an abnormal state review of an advanced mobile application build automation process models that enable one to increase efficiency and prepare various tested builds created from broke down and validated codebases 

Mobile build automation, an abnormal state diagram 

Usually, an abnormal state perspective on a build automation process with Titanium apps can go this way (given information given by ACA Mobile): 

Prepare codebase (Jenkins) 

Unit testing (TiUnit) 

Examining codebase (sonarqube) 

UI testing (AWS) 

Archiving and sharing artifacts (Sonatype Nexus) 

Notifying individuals 

1.Setting up the codebase 

Our journey starts directly after the build procedure is triggered, ordinarily consequently by a clock (two times every day) or physically by a designer. Our automation server (Jenkins) guides the entire procedure by setting off a Maven build. Contingent upon the configuration, the correct condition properties are infused inside the Titanium codebase (for example backend URL, application variant, and investigation ID in our config.json). This all occurs inside our Mac Mini (OS X) we designed as our Jenkins CI Slave. We picked a Mac Mini for a few reasons, but for the most part, because it offers the required mobile tools (particularly Xcode for iOS apps) for building apps. 

2.Unit testing with TiUnit 

When those factors are set up, unit tests are triggered and run consequently. We depend on TiUnit (which we created) for composing our unit tests. TiUnit, given Jasmine, enables us to compose and run tests madly quick without having to rely upon the Titanium runtime. You can discover more about TiUnit on our GitHub. After those tests, a code coverage report is produced. We’re utilizing Istanbul as our code coverage tool. 

3.  Dissecting the codebase quality

 Alongside the code coverage reports, a SonarQube code quality check is performed. SonarQube is a platform for persistent investigation of code quality to perform programmed surveys with a static examination of code to detect bugs, code scents, and security vulnerabilities.

4. UI testing on real devices 

When those tests succeed, and reports are created, at that point the build (slam) scripts trigger the Titanium CLI to build the application (both Android and iOS). Directly after the builds are available, they’re pushed to simulators and physical devices for UI testing. Since there are impediments on simulators/emulators (for example no iOS camera on a simulator), we incorporated with Amazon Device Farm to test our apps on real devices. With this Amazon joining, we can run UI tests and validate the behavior of our apps on intriguing/old Android devices, which is now and again challenging to accomplish with emulators. Additionally, purchasing every one of those Android devices wouldn’t be a sound alternative in any case. 

5. Archiving and sharing the artifacts 

When we get our test results from Amazon alongside gadget logs and video/pictures, Jenkins triggers our build scripts again to start the (test) dispatch. Given the configuration, development, specially appointed or discharge/production builds are created and marked. After the marking, the builds (.ipa/.apk) documents are pushed to our interior Nexus Repository Manager for archiving. 

If wanted, those builds can be likewise consequently distributed to our welcome based beta distribution tool for giving apps to clients to beta testing. 

6. Sending notifications

If all goes well (or seriously), our development group is notified by email and additionally by an Atlassian Hipchat notification concerning the build status, which can likewise be forwarded to our smartwatches.

Author Bio:-

Merry Waren is a Marketing Manager at AIS Technolabs which is Web design and Development Company, helping global businesses to grow by Node Js Development Services. I would love to share thoughts on Titanium mobile development and Game Design Development etc.

Contact Us for Free Consultation

Are You Planning to outsource Digital Tansformation services? Feel free for work-related inquiries, our experts will revert you ASAP,