Skip to content

GSoC with MIT App Inventor Application Instructions

Susan Rati Lane edited this page Feb 8, 2022 · 1 revision

Questions to answer and instructions on how to apply

Thank you for your interest in working on MIT App Inventor through Google Summer of Code. To apply, complete the application form at the bottom of this page. Our application deadline is the same as Google's application deadline, and you must apply both places. Please refer to Google's Summer of Code Page for the application timeline.

The form asks you to provide:

  • Short-answer questions: enter your answers directly on the form.
  • Long-answer questions: put your answers on web pages and enter the URLs on the form. Make sure that the web pages are publicly readable and that they can be read directly by a browser, not as documents that need to be opened with other applications. We will not open Word documents, PDF files, etc. Include your name and email address at the top of each page and the question title before each answer. You may include multiple answers on a single page, but make it clear which answer corresponds to which question.
  • Application challenges: Two tasks have to be completed as part of your application. You application must address both challenges in order to be considered:
    • Challenge 1: creating a non-trivial app
    • Challenge 2: design challenge
  • Supply the name and email address of someone who can provide a recommendation for you.

Make sure to create your web pages and test that they are working before filling in the URLs and submitting the form. If we can’t read the web pages, we won’t be able to consider your application.

Long-answer questions

Interest in App Inventor

Why are you interested in working with App Inventor? Please answer in at most 50 words.

Interest in introductory programming

What experience do you have, if any, with teaching computer programming to beginners (including experience teaching about App Inventor)? Please describe this in at most 50 words.

Proposed summer project

What would you like to work on this summer? You can select a project from the ideas list or propose your own project. If you do propose your own project, explain why this should be a priority for App Inventor development.

Note that the projects list is just a source of ideas, and it will mostly change during the summer. Applying for a particular project does not necessarily mean that you will be working on that project. Those accepted will work closely with their mentors to define and scope the projects they will tackle during the programme.

Experience with the development tools

Look back at your answer to the short-answer question about experience with the various technologies used in App Inventor development. For each technology where you indicated “extensive experience”, write a paragraph explaining your relevant experience. Include links to actual code and documentation that you’ve written.

Experience with teams, online developer communities and large code bases

Describe what experience you’ve had working with other software developers and/or with large code bases. This can include class projects and an excellent StackOverflow reputation.

Application challenges

You will need to accomplish two challenges as part of your GSoC application. We will consider only applications that meet these two challenges:

Challenge 1: Creating a non-trivial app

If you have never used the App Inventor, please go through some of the tutorials to get used to the terminology used within the App Inventor project. One starting point for GSoC applicants can be found at this post on our community forum

For this GSoC application you will need to create at least one non-trivial app with App Inventor. There is no topic for the app, you can create whatever you can imagine or try to duplicate parts of the functionality of an app you use often or you like. You should include both APK and the App Inventor Source file (AIA). You should not use the MIT server, but rather install the server locally on your own machine and work from there. To get your server running you can follow the instructions in our main github repo. If you have any questions regarding getting the server up and running you should first read our very detailed guide, and if you come across any issues, please post on our Community Forum.

There are two form fields to fill in for this challenge; a URL from which we can download for the AIA file for your chosen app, and a URL from which we can download for the APK file for your chosen app (built with your own local server). Maybe sure that the files are publicly readable and do not require any login or authorization procedure in order to obtain the files.

Challenge 2:Design challenge -- Enhancing the Camera operation

The first challenge asked you to fork and clone the App Inventor sources from github and run your own local server; now it’s time to dive into the sources. You should consult our documentation, especially the developer overview to get started. Other documents about Component development will also be very helpful for this challenge.

Consider the following problem:

App Inventor has a Camera component to take pictures with your device’s camera. The Paint Pot Extended with Camera tutorial is a good example of that. There used to be a property called ‘useFront’ that unfortunately had stopped working with newer releases of the Android OS. As explained in the reference doc, the property would allow an App Inventor developer to use the front camera as a default when opening up the Camera (note that the user would still be able to switch back to the back camera manually if wanted).

To get started with this challenge, you should do some research on why the property is not working anymore. Once you have an idea of what is going on, please document it.

To continue with the challenge, consider letting App Inventor to let the camera take pictures automatically, without requiring user manual intervention for each shot. (Currently, the only way to take a picture is through user intervention; if this doesn’t seem obvious, play with the component for a bit and it should become clear.)

Describe your design for how this would appear to App Inventor users. What new components or properties or methods would you add?

Explain how you would implement change. Would you extend the existing Camera component, or would you create a separate component? You should say which files in the source tree would need to be added and modified, and indicate how they would need to be modified, and how the modifications would take advantage of features in the Android SDK. You don’t have to provide running code, but you might want in include a couple of short code snippets at key points. Your explanation should be clear enough that another developer could do the implementation.

There is a field in the Form to provide a URL to your report, which should cover the the two parts of the challenge (front camera property issues, and your design to extend the component).

By submitting your application, you agree that any programs or program-related material you include is provided under the terms of the Apache 2.0 License http://www.apache.org/licenses/LICENSE-2.0 and that both MIT and the general public have the right to reuse, modify, and distribute these materials.