Building Pocket Code build-variants


  • Kirshan Kumar Luhana
  • . .





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.




[1] eMarketer, “2 billion consumers worldwide to get smart(phones) by 2016 - emarketer,† Article/2-Billion-Consumers- Worldwide-Smartphones- by-2016/

[2] 1011694, 2016, (Accessed on 06/15/2018). [On- line]. Available:

[3] 2-Billion- Consumers-Worldwide- Smartphones-by- 2016/1011694

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:

[4] 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.

[5] 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.

  1. 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.

[6] 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.

[7] 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.

[8] 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.

[9] J. White, J. A. Galindo, T. Saxena, B. Dougherty, D. Benavides, and

[10] D. C. Schmidt, “Evolving feature model conï¬gurations in software

[11] product lines,†Journal of Systems and Software, vol. 87, pp. 119–136,

[12] 2014.

[13] K. K. Luhana, “Pocket code build variants,†in 2018 IEEE International

[14] Conference on Innovative Research and Development (ICIRD), May

[15] 2018, pp. 1–6.

[16] J. Humble and D. Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Adobe Reader). Pearson Education, 2010.

[17] 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.

[18] 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.

[19] 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.

[20] K. Pohl, G. Bo¨ ckle, and F. J. van Der Linden, Software product line engineering: foundations, principles and techniques. Springer Science

[21] & Business Media, 2005.

[22] T. Du¨ rschmid, M. Trapp, and J. Do¨ llner, “Towards architectural styles

[23] for android app software product lines,†in Mobile Software Engineer-

[24] ing and Systems (MOBILESoft), 2017 IEEE/ACM 4th International

[25] Conference on. IEEE, 2017, pp. 58–62.

[26] J. Martinez, T. Ziadi, T. F. Bissyande´ , J. Klein, and Y. L. Traon,

[27] “Bottom-up technologies for reuse: Automated extractive adoption

[28] of software product lines,†in 2017 IEEE/ACM 39th International Con-

[29] ference on Software Engineering Companion (ICSE-C), May 2017, pp.

[30] 67–70.

[31] L. Pessoa, P. Fernandes, T. Castro, V. Alves, G. N. Rodrigues, and

[32] H. Carvalho, “Building reliable and maintainable dynamic software

[33] product lines: An investigation in the body sensor network domain,â€

[34] Information and Software Technology, vol. 86, pp. 54–70, 2017.

[35] M. Rosenmu¨ ller, N. Siegmund, M. Pukall, and S. Apel, “Tailoring

[36] dynamic software product lines,†in ACM SIGPLAN Notices, vol. 47,

[37] no. 3. ACM, 2011, pp. 3–12.

[38] N. Fußberger, B. Zhang, and M. Becker, “A deep dive into android’s

[39] variability realizations,†in Proceedings of the 21st International Sys-

[40] tems and Software Product Line Conference-Volume A. ACM, 2017,

[41] pp. 69–78.

[42] D. Beuche, H. Papajewski, and W. Schro¨ der-Preikschat, “Variability

[43] management with feature models,†Science of Computer Programming,

[44] vol. 53, no. 3, pp. 333–352, 2004.

[45] 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:

[46] Foundations and Applications. CRC Press, 2018. [Online]. Available:


[48] S. Hallsteinsen, M. Hinchey, S. Park, and K. Schmid, “Dynamic soft-

[49] ware product lines,†Computer, vol. 41, no. 4, pp. 93–95, April 2008.

[50] J. Eleute´rio and C. Rubira, “A comparative study of dynamic software

[51] product line solutions for building self-adaptive systems,†2017.

[52] K. K. Luhana, C. Schindler, and W. Slany, “Streamlining mobile app

[53] deployment with jenkins and fastlane in the case of catrobat’s pocket

[54] code,†in 2018 IEEE International Conference on Innovative Research

[55] and Development (ICIRD), May 2018, pp. 1–6.

[56] “Catrobat,†, (Accessed on 06/21/2018).

[57] [27] W. Slany, “Pocket code: a scratch-like integrated development environ-

[58] ment for your phone,†in Proceedings of the companion publication of

[59] the 2014 ACM SIGPLAN conference on Systems, Programming, and

[60] Applications: Software for Humanity. ACM, 2014, pp. 35–36.

  1. M. A. Awwad, C. Schindler, K. K. Luhana, Z. Ali, and B. Spieler,

[61] “Improving pocket paint usability via material design compliance and

[62] internationalization & localization support on application level,†in

[63] Proceedings of the 19th International Conference on Human-Computer

[64] Interaction with Mobile Devices and Services. ACM, 2017, p. 99.

[65] Google, “Apk expansion files — android developers,†https:

[66] //, (Accessed

[67] on 04/25/2018). [Online]. Available:

[68] google/play/expansion-files.html

[69] Gradle, “Gradle user manual,†

[70] userguide/userguide.html, (Accessed on 06/21/2018).

[71] ——, “Building android apps,†

[72] building- android-apps/? ga=2.192105194.1765589774.

[73] 1529583778-1316420249.1529583778, (Accessed on 06/21/2018). [32] G. Developer, “Android plugin for gradle release notes — android

[74] studio,â€

[75] opers,†,

[76] (Accessed on 06/21/2018).

[77] android, “Build your app from the command line — android developers,â€, (Accessed on 06/21/2018)org/

[78] “Executing gradle builds on jenkins,â€

[79] executing-gradle-builds-on-jenkins/, (Accessed on 06/21/2018).

[80] “Configure your build — android developers,†https://developer.

[81], (Accessed on 06/21/2018).

[82] “Jenkins user documentation,†, (Accessed on

[83] 06/21/2018).

[84] J. team, “Jenkins,†, (Accessed on 04/25/2018).

[85] [Online]. Available:

[86] K. Kawaguchi, “Parameterized build - jenkins - jenkins wiki,†https:

[87] //, 2017, (Ac-

[88] cessed on 04/25/2018).

[89] G. Developer, “Configure build variants — android studio,†https:

[90] // variants.html, 2018, (Ac-

[91] cessed on 04/25/2018).

[92] ——, “Configure your build — android studio,†https://developer.

[93], 2018, (Accessed on 04/25/2018). [41] ——, “Multiple apk support — android developers,†https://developer.

[94], 2018, (Ac- cessed on 04/25/2018). [Online]. Available: com/google/play/publishing/multiple-apks.html

[95] Google, “Sign your app - android studio,†2018, accessed: 4th April, 2018. [Online]. Available: publish/app-signing.html

View Full Article:

How to Cite

Kumar Luhana, K., & ., . (2018). Building Pocket Code build-variants. International Journal of Engineering & Technology, 7(4.15), 333–339.
Received 2018-12-03
Accepted 2018-12-03
Published 2018-10-07