Who is this training for?

These courses are created for junior developers that want to speed up their transition to senior. If the candidate already knows the basics about creating a mobile app for iOS or Android and has been doing development work for at least a year, (s)he does qualify.

We focus on advanced topics that require some previous experience in order to get the most out of it. We do want people who love learning and improving the way they do things, but if you haven't got the experience, we ask you to wait until you are ready to take full advantage of it.

These courses aren't designed to teach beginners any of the basic skills they need to become a mobile developer.

What is your methodology?

The content is eminently practical and we provide a large number of exercises that address all topics covered in the course. The exercises are planned within the framework of a fictional project, but realistic in scope. Some courses start by creating an empty project, some others start from some pre-existing legacy code due to requirements of the contents being addressed.

The dynamics of each session are very similar. The instructor makes a theoretical explanation and optionally some demos of the relevant content before each exercise. Then each student works on the exercises using different techniques such as pair programming, directed programming, or individual programming. Finally the exercises are commented with the instructor that offers insights about the different implementations and questions from the students. Approximately 30% is dedicated to the explanation of theoretical concepts and implications and 70% to the realization exercises prepared by the instructor to illustrate and master the concepts discussed.

Students have access to a public code repository (git) prepared by the instructor which contains the step by step solutions in the various reviews (commits) to each of the exercises. In this way, the students have all the flexibility to go at their own pace, study each exercise individually, repeat the exercises they want to at any time or skip any exercise, while being confident that they will be starting from a version of the code that behaves as expected and has all the necessary prerequisites.

Transparencies supporting the theoretical explanations are provided too. They contain all the relevant parts of the content, but they are not an exhaustive guide. The slides are available for students at the end of each session.

Solutions and explanations of the course exercises are made following the best practices, design patterns, and clean code. Discussions about the best ways of carrying out the implementation of the concepts and the best architectures to support those implementations are encouraged discussion during the whole course.

How long are the courses?

1 week (5 days): 40h teaching.

Do you offer in-house trainings?

Sure we do! If your company needs to train a team, we can tailor an advanced iOS or Android developer training course to your organization’s specific needs.

Our in-house training courses provide a cost effective way to raise the skills of your team, allowing to maximize their performance and to increase the quality of their contribution to your development project from day one.

Do I need to do any pre-work?

It depends on your background. During the course we use intensively, and take for grarnted, Git, you IDE (Xcode, Android), and Agile methodologies.

Do I need to bring my own hardware?

Yes, you need to. We strongly suggest you to use an Apple laptop running Yosemite OS 10.10 or later for the iOS courses and any computer able to run the latest version of the Android Studio and the Android emulator for the Android courses.

And regarding mobile devices, we strongly recommend that you have an iPhone, iPod or iPad able to run the latest version of iOS for the iOS courses. Or an Android device that runs Lollipop for the Android courses. If you don’t have one, you can use a simulator/emulator, but there might be some limitations for some exercises like those using the sensors. In any case, the impact on performance of some of the techniques can only be fully experienced in a real device.