During this Summer School Mobile Software Development stream was almost isolated from all the other streams. It was caused as by physical separation reasons as well as by specific work that had place on this stream. And now, in the end of the Summer School, we are ready to uncover all the secrets and proud to present results of this work.
Nowadays, Web technologies become enough powerful to be used for creating full-featured applications. At the same time, Web is probably the best option for developing cross-platform applications as this technology is spreading to almost all kinds of devices and those applications can be used on any device having access to Internet and running browser including PC, laptop, tablet and smartphone.For business, this allows not to overpay for development and support of different applications written in different programming languages and technologies on different types of devices.For developers, this means ability to write the same code for the same purposes for all the devices software is supposed to be used on. As far as most part of code of application is not specific and hardware-related, but is mostly logic implementation, using one code base saves a lot of development time and does not require additional human resources for porting application to several platforms.For you as users, mobile web applications allow always to stay in touch with your friends, pay the bills, order the tickets, actually, you can do whatever you want from any place where you have access to the Internet.
Our purpose was to teach participants to develop Web-based applications that can run on any kind of these devices, including mobile ones which are probably the most problematic for development for different hardware reasons.As well-known proverb says, the best method of learning is “practice, practice and practice again”.So we decided not simply to read boring everyday lections, but to make process of learning really interactive and more similar to real-life work. That’s why the work on this stream was performed as real development process of real applications using real development tools and real methodology.
All the participants weresplitted into 4 teams that were proposed to create mobile games that should be playable on both tablets and smartphones.Why games?On one hand, it allowed to have enough space for creativity in thinking of and implementing the most crazy ideas that may come into mind while planning the development process.On other hand, games are probably one of the most complicated type of software as developer has to care about a lot of different hardware- and software-related issues, such as different screen dimensions, orientations, sizes of devices, different control types, performance abilities, and all that stuff is only harder to take into account and cope with when you come to mobile world.So game development allows to get the most complete experience and to learn to solve the most complete variety of problems that mobile programmer can face in his projects.
Most of participants had no team development experience – they had never used online project management tools nor systems for collaborative work and version control of source codes.
Agile issoftware development methodology that is becoming more and more popular, as it provides better end user satisfaction, great flexibility and increased team productivity.Agile methods are commonly used to manage small cross-functional teams and deliver product in small increments, responding to rapidly changing business needs.Practical part was mostly the software development with online consultation with our support team which consisted of tutors and organizers and was done in teams according to the agile software process and covered planning, prototyping, development, testing and deployment phases.
All the tasks were written down on stickers that were put on the whiteboard. That allowed to easily track the changes and to see what is already done, what is in progress stage, what has to be done and what ideas could not be implemented because of technical reasons.Development was at the same time iterative and incremental, what means that teams each day implemented new features for the application and enhanced previously implemented ones. This allowed easy splitting of tasks and tracking the progress with having daily meetings with our support team. According to the Agile, all developers were code owners, and they could switch roles during the project.
Now I want to give the word to teams, so they could introduce themselves, tell what have they learned during the School, how did they work, what problems had they faced and how did they solved them, and, of course, demonstrate the projects they have created on this stream.
Team Work Experience Experience of project Version Control tools management tools knowledge 12 12 10 10 8 8 6 6 4 4 2 2 0 0 no yes elementary intermediate advanced
Tutors & Courses Alexey Leonov Bogdan Kyryliuk MarynaVasilij Savin Ivan Milles Didkovska Mobile Web Mobile Web User Interface Planning Pre-releaseDevelopment Development Design and Technologies: review Tools for Prototyping Gantt diagram coordinator Jasmine, JS UnitDevelopment & WBS TestAgile ProjectManagement