Building Pocket Code build-variants

  • Authors

    • Kirshan Kumar Luhana
    • . .
    https://doi.org/10.14419/ijet.v7i4.15.23023

    Received date: December 3, 2018

    Accepted date: December 3, 2018

    Published date: October 7, 2018

  • Catrobat, Pocket Code, Android Build variant, Dynamic Software Product Lines, Variability
  • Abstract

    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.

  • References

    1. eMarketer, “2 billion consumers worldwide to get smart(phones) by 2016 - emarketer,” https://www.emarketer.com/ Article/2-Billion-Consumers- Worldwide-Smartphones- by-2016/
    2. 1011694, 2016, (Accessed on 06/15/2018). [On- line]. Available: https://www.emarketer.com/Article/
    3. 2-Billion- Consumers-Worldwide- Smartphones-by- 2016/1011694
    4. 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
    5. 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.
    6. 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.
    7. A. 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.
    8. 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.
    9. 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.
    10. 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.
    11. J. White, J. A. Galindo, T. Saxena, B. Dougherty, D. Benavides, and
    12. D. C. Schmidt, “Evolving feature model configurations in software
    13. product lines,” Journal of Systems and Software, vol. 87, pp. 119–136,
    14. 2014.
    15. K. K. Luhana, “Pocket code build variants,” in 2018 IEEE International
    16. Conference on Innovative Research and Development (ICIRD), May
    17. 2018, pp. 1–6.
    18. J. Humble and D. Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Adobe Reader). Pearson Education, 2010.
    19. 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.
    20. 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.
    21. 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.
    22. K. Pohl, G. Bo¨ ckle, and F. J. van Der Linden, Software product line engineering: foundations, principles and techniques. Springer Science
    23. & Business Media, 2005.
    24. T. Du¨ rschmid, M. Trapp, and J. Do¨ llner, “Towards architectural styles
    25. for android app software product lines,” in Mobile Software Engineer-
    26. ing and Systems (MOBILESoft), 2017 IEEE/ACM 4th International
    27. Conference on. IEEE, 2017, pp. 58–62.
    28. J. Martinez, T. Ziadi, T. F. Bissyande´ , J. Klein, and Y. L. Traon,
    29. “Bottom-up technologies for reuse: Automated extractive adoption
    30. of software product lines,” in 2017 IEEE/ACM 39th International Con-
    31. ference on Software Engineering Companion (ICSE-C), May 2017, pp.
    32. 67–70.
    33. L. Pessoa, P. Fernandes, T. Castro, V. Alves, G. N. Rodrigues, and
    34. H. Carvalho, “Building reliable and maintainable dynamic software
    35. product lines: An investigation in the body sensor network domain,”
    36. Information and Software Technology, vol. 86, pp. 54–70, 2017.
    37. M. Rosenmu¨ ller, N. Siegmund, M. Pukall, and S. Apel, “Tailoring
    38. dynamic software product lines,” in ACM SIGPLAN Notices, vol. 47,
    39. no. 3. ACM, 2011, pp. 3–12.
    40. N. Fußberger, B. Zhang, and M. Becker, “A deep dive into android’s
    41. variability realizations,” in Proceedings of the 21st International Sys-
    42. tems and Software Product Line Conference-Volume A. ACM, 2017,
    43. pp. 69–78.
    44. D. Beuche, H. Papajewski, and W. Schro¨ der-Preikschat, “Variability
    45. management with feature models,” Science of Computer Programming,
    46. vol. 53, no. 3, pp. 333–352, 2004.
    47. 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:
    48. Foundations and Applications. CRC Press, 2018. [Online]. Available:
    49. http://kar.kent.ac.uk/66574/
    50. S. Hallsteinsen, M. Hinchey, S. Park, and K. Schmid, “Dynamic soft-
    51. ware product lines,” Computer, vol. 41, no. 4, pp. 93–95, April 2008.
    52. J. Eleute´rio and C. Rubira, “A comparative study of dynamic software
    53. product line solutions for building self-adaptive systems,” 2017.
    54. K. K. Luhana, C. Schindler, and W. Slany, “Streamlining mobile app
    55. deployment with jenkins and fastlane in the case of catrobat’s pocket
    56. code,” in 2018 IEEE International Conference on Innovative Research
    57. and Development (ICIRD), May 2018, pp. 1–6.
    58. “Catrobat,” http://developer.catrobat.org/, (Accessed on 06/21/2018).
    59. [27] W. Slany, “Pocket code: a scratch-like integrated development environ-
    60. ment for your phone,” in Proceedings of the companion publication of
    61. the 2014 ACM SIGPLAN conference on Systems, Programming, and
    62. Applications: Software for Humanity. ACM, 2014, pp. 35–36.
    63. A. M. A. Awwad, C. Schindler, K. K. Luhana, Z. Ali, and B. Spieler,
    64. “Improving pocket paint usability via material design compliance and
    65. internationalization & localization support on application level,” in
    66. Proceedings of the 19th International Conference on Human-Computer
    67. Interaction with Mobile Devices and Services. ACM, 2017, p. 99.
    68. Google, “Apk expansion files — android developers,” https:
    69. //developer.android.com/google/play/expansion-files.html, (Accessed
    70. on 04/25/2018). [Online]. Available: https://developer.android.com/
    71. google/play/expansion-files.html
    72. Gradle, “Gradle user manual,” https://docs.gradle.org/current/
    73. userguide/userguide.html, (Accessed on 06/21/2018).
    74. ——, “Building android apps,” https://guides.gradle.org/
    75. building- android-apps/? ga=2.192105194.1765589774.
    76. 1529583778-1316420249.1529583778, (Accessed on 06/21/2018). [32] G. Developer, “Android plugin for gradle release notes — android
    77. studio,”
    78. opers,” https://developer.android.com/studio/build/building-cmdline,
    79. (Accessed on 06/21/2018).
    80. android, “Build your app from the command line — android developers,”https://developer.android.com/studio/build/building-cmdline, (Accessed on 06/21/2018)org/
    81. “Executing gradle builds on jenkins,”https://guides.gradle.org/
    82. executing-gradle-builds-on-jenkins/, (Accessed on 06/21/2018).
    83. “Configure your build — android developers,” https://developer.
    84. android.com/studio/build/, (Accessed on 06/21/2018).
    85. “Jenkins user documentation,” https://jenkins.io/doc/, (Accessed on
    86. 06/21/2018).
    87. J. team, “Jenkins,” https://jenkins.io/, (Accessed on 04/25/2018).
    88. [Online]. Available: https://jenkins.io
    89. K. Kawaguchi, “Parameterized build - jenkins - jenkins wiki,” https:
    90. //wiki.jenkins.io/display/JENKINS/Parameterized+Build, 2017, (Ac-
    91. cessed on 04/25/2018).
    92. G. Developer, “Configure build variants — android studio,” https:
    93. //developer.android.com/studio/build/build- variants.html, 2018, (Ac-
    94. cessed on 04/25/2018).
    95. ——, “Configure your build — android studio,” https://developer.
    96. android.com/studio/build/index.html, 2018, (Accessed on 04/25/2018). [41] ——, “Multiple apk support — android developers,” https://developer.
    97. 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
    98. Google, “Sign your app - android studio,” 2018, accessed: 4th April, 2018. [Online]. Available: https://developer.android.com/studio/ publish/app-signing.html
  • Downloads

  • How to Cite

    Kumar Luhana, K., & ., . (2018). Building Pocket Code build-variants. International Journal of Engineering and Technology, 7(4.15), 333-339. https://doi.org/10.14419/ijet.v7i4.15.23023