Building Pocket Code build-variants
Keywords:Catrobat, Pocket Code, Android Build variant, Dynamic Software Product Lines, Variability
Pocket Code is an integrated development environment (IDE) targeted at smartphones. With this IDE users can create mobile apps for the block-based visual programming language Catrobat. Pocket Code is released in various flavors with custom features for partners and projects (e.g., Pocket Code, Create@School, Phiro, and Standalone). All flavors extend a single common project codebase according to flavor specific requirements. The Standalone variants (debug and release) convert a Catrobat project into an Android application to install it independently and execute it without the need for an installed Pocket Code on an Android smartphone. Furthermore, it can be published on app stores for reputational and also monetary benefits. The app resource files and the configuration are generated on the fly upon a user request via the Pocket Code sharing platform. In this paper, the approach of building a Pocket Code variant and transform a Pocket Code project into an Android application are described. Especially the Standalone build variants have the potential to bring many interesting apps to the market.
 eMarketer, â€œ2 billion consumers worldwide to get smart(phones) by 2016 - emarketer,â€ https://www.emarketer.com/ Article/2-Billion-Consumers- Worldwide-Smartphones- by-2016/
Aldayel and K. Alnafjan, â€œChallenges and best practices for mobile application development: Review paper,â€ in Proceedings of the International Conference on Compute and Data Analysis, ser. ICCDA â€™17. New York, NY, USA: ACM, 2017, pp. 41â€“48. [Online]. Available: http://doi.acm.org/10.1145/3093241.3093245
 H. K. Flora, S. V. Chande, and X. Wang, â€œAdopting an agile approach for the development of mobile applications,â€ International Journal of Computer Applications, vol. 94, no. 17, 2014.
 M. Galster, U. Zdun, D. Weyns, R. Rabiser, B. Zhang, M. Goedicke, and G. Perrouin, â€œVariability and complexity in software design: To- wards a research agenda,â€ ACM SIGSOFT Software Engineering Notes, vol. 41, no. 6, pp. 27â€“30, 2017.
- Metzger and K. Pohl, â€œSoftware product line engineering and vari- ability management: achievements and challenges,â€ in Proceedings of the on Future of Software Engineering. ACM, 2014, pp. 70â€“84.
 R. Capilla, J. Bosch, P. Trinidad, A. Ruiz-CorteÂ´ s, and M. Hinchey, â€œAn overview of dynamic software product line architectures and tech- niques: Observations from research and industry,â€ Journal of Systems and Software, vol. 91, pp. 3â€“23, 2014.
 N. R. Brisaboa, A. CortinËœ as, M. R. Luaces, and M. Polâ€™la, â€œA reusable software architecture for geographic information systems based on software product line engineering,â€ in Model and Data Engineering, L. Bellatreche and Y. Manolopoulos, Eds. Cham: Springer Intern tional Publishing, 2015, pp. 320â€“331.
 M. Usman, M. Z. Iqbal, and M. U. Khan, â€œA product-line model-driven engineering approach for generating feature-based mobile applications,â€ Journal of Systems and Software, vol. 123, no. October 2013, pp. 1â€“32, 2017.
 J. White, J. A. Galindo, T. Saxena, B. Dougherty, D. Benavides, and
 D. C. Schmidt, â€œEvolving feature model conï¬gurations in software
 product lines,â€ Journal of Systems and Software, vol. 87, pp. 119â€“136,
 K. K. Luhana, â€œPocket code build variants,â€ in 2018 IEEE International
 Conference on Innovative Research and Development (ICIRD), May
 2018, pp. 1â€“6.
 J. Humble and D. Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Adobe Reader). Pearson Education, 2010.
 S. SepuÂ´ lveda, A. Cravero, and C. Cachero, â€œRequirements modeling languages for software product lines: A systematic literature review,â€ Information and Software Technology, vol. 69, pp. 16â€“36, 2016.
 T. Dinkelaker, R. Mitschke, K. Fetzer, and M. Mezini, â€œA dynamic software product line approach using aspect models at runtime,â€ in Pro- ceedings of the 1st Workshop on Composition and Variability. CEUR Workshop, 2010, pp. 180â€“220.
 M. Li, A. Grigg, C. Dickerson, L. Guan, and S. Ji, â€œA product line systems engineering process for variability identification and reduction,â€ arXiv preprint arXiv:1806.04705, 2018.
 K. Pohl, G. BoÂ¨ ckle, and F. J. van Der Linden, Software product line engineering: foundations, principles and techniques. Springer Science
 & Business Media, 2005.
 T. DuÂ¨ rschmid, M. Trapp, and J. DoÂ¨ llner, â€œTowards architectural styles
 for android app software product lines,â€ in Mobile Software Engineer-
 ing and Systems (MOBILESoft), 2017 IEEE/ACM 4th International
 Conference on. IEEE, 2017, pp. 58â€“62.
 J. Martinez, T. Ziadi, T. F. BissyandeÂ´ , J. Klein, and Y. L. Traon,
 â€œBottom-up technologies for reuse: Automated extractive adoption
 of software product lines,â€ in 2017 IEEE/ACM 39th International Con-
 ference on Software Engineering Companion (ICSE-C), May 2017, pp.
 L. Pessoa, P. Fernandes, T. Castro, V. Alves, G. N. Rodrigues, and
 H. Carvalho, â€œBuilding reliable and maintainable dynamic software
 product lines: An investigation in the body sensor network domain,â€
 Information and Software Technology, vol. 86, pp. 54â€“70, 2017.
 M. RosenmuÂ¨ ller, N. Siegmund, M. Pukall, and S. Apel, â€œTailoring
 dynamic software product lines,â€ in ACM SIGPLAN Notices, vol. 47,
 no. 3. ACM, 2011, pp. 3â€“12.
 N. FuÃŸberger, B. Zhang, and M. Becker, â€œA deep dive into androidâ€™s
 variability realizations,â€ in Proceedings of the 21st International Sys-
 tems and Software Product Line Conference-Volume A. ACM, 2017,
 pp. 69â€“78.
 D. Beuche, H. Papajewski, and W. SchroÂ¨ der-Preikschat, â€œVariability
 management with feature models,â€ Science of Computer Programming,
 vol. 53, no. 3, pp. 333â€“352, 2004.
 J. D. A. S. Eleute?rio, B. B. N. de Franc?a, C. M. F. Rubira, and R. de Lemos, â€œRealising variability in dynamic software product line solutions,â€ in Software Engineering for Variability Intensive Systems:
 Foundations and Applications. CRC Press, 2018. [Online]. Available:
 S. Hallsteinsen, M. Hinchey, S. Park, and K. Schmid, â€œDynamic soft-
 ware product lines,â€ Computer, vol. 41, no. 4, pp. 93â€“95, April 2008.
 J. EleuteÂ´rio and C. Rubira, â€œA comparative study of dynamic software
 product line solutions for building self-adaptive systems,â€ 2017.
 K. K. Luhana, C. Schindler, and W. Slany, â€œStreamlining mobile app
 deployment with jenkins and fastlane in the case of catrobatâ€™s pocket
 code,â€ in 2018 IEEE International Conference on Innovative Research
 and Development (ICIRD), May 2018, pp. 1â€“6.
 â€œCatrobat,â€ http://developer.catrobat.org/, (Accessed on 06/21/2018).
  W. Slany, â€œPocket code: a scratch-like integrated development environ-
 ment for your phone,â€ in Proceedings of the companion publication of
 the 2014 ACM SIGPLAN conference on Systems, Programming, and
 Applications: Software for Humanity. ACM, 2014, pp. 35â€“36.
- M. A. Awwad, C. Schindler, K. K. Luhana, Z. Ali, and B. Spieler,
 â€œImproving pocket paint usability via material design compliance and
 internationalization & localization support on application level,â€ in
 Proceedings of the 19th International Conference on Human-Computer
 Interaction with Mobile Devices and Services. ACM, 2017, p. 99.
 Google, â€œApk expansion files â€” android developers,â€ https:
 //developer.android.com/google/play/expansion-files.html, (Accessed
 on 04/25/2018). [Online]. Available: https://developer.android.com/
 Gradle, â€œGradle user manual,â€ https://docs.gradle.org/current/
 userguide/userguide.html, (Accessed on 06/21/2018).
 â€”â€”, â€œBuilding android apps,â€ https://guides.gradle.org/
 1529583778-1316420249.1529583778, (Accessed on 06/21/2018).  G. Developer, â€œAndroid plugin for gradle release notes â€” android
 opers,â€ https://developer.android.com/studio/build/building-cmdline,
 (Accessed on 06/21/2018).
 android, â€œBuild your app from the command line â€” android developers,â€https://developer.android.com/studio/build/building-cmdline, (Accessed on 06/21/2018)org/
 â€œExecuting gradle builds on jenkins,â€https://guides.gradle.org/
 executing-gradle-builds-on-jenkins/, (Accessed on 06/21/2018).
 â€œConfigure your build â€” android developers,â€ https://developer.
 android.com/studio/build/, (Accessed on 06/21/2018).
 â€œJenkins user documentation,â€ https://jenkins.io/doc/, (Accessed on
 J. team, â€œJenkins,â€ https://jenkins.io/, (Accessed on 04/25/2018).
 [Online]. Available: https://jenkins.io
 K. Kawaguchi, â€œParameterized build - jenkins - jenkins wiki,â€ https:
 //wiki.jenkins.io/display/JENKINS/Parameterized+Build, 2017, (Ac-
 cessed on 04/25/2018).
 G. Developer, â€œConfigure build variants â€” android studio,â€ https:
 //developer.android.com/studio/build/build- variants.html, 2018, (Ac-
 cessed on 04/25/2018).
 â€”â€”, â€œConfigure your build â€” android studio,â€ https://developer.
 android.com/google/play/publishing/multiple-apks.html, 2018, (Ac- cessed on 04/25/2018). [Online]. Available: https://developer.android. com/google/play/publishing/multiple-apks.html
View Full Article:
How to Cite
LicenseAuthors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under aÂ Creative Commons Attribution Licensethat allows others to share the work with an acknowledgement of the work''s authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal''s published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (SeeÂ The Effect of Open Access).