DAY 1 - ANDROID
Ensuring applications quality and avoiding regression has always been a hot topic for software developers. In the mobile applications world the topic is even hotter since there is a huge variety of devices, manufacturers and underlying mobile platform versions.
In this session we are going to discuss why mobile applications test automation does matter. We would lift the curtain on the major challenges test automation engineers face and get an idea on how to plan and eventually implement robust test strategies so that issues are detected as early as possible.
Bogdan Popa – “How to build a hybrid mobile app with Material Design and AngularJS using Ionic”
Google’s new concept of Material Design targeted web and mobile. They are using it also in their own products, like Gmail. Integrated in the latest version of Android, it is present in tablets, mobiles, Smart TV’s, watches and even in car systems. Now the web direction is getting close to mobile or we can say that is driven by mobile. AngularJS and Ionic team are developing responsive web and mobile components with Material Design, that can be easily used to develop web apps but also hybrid mobile apps.
Laurent Doguin – “No Bars? No Problem”
I am usually very frustrated when I can't look at the program of a conference on my phone. I am even more frustrated when doing so require an internet connection.
In this talk I will code a sample conference app that address this tedious offline sync issue. I will do so using Android and Couchbase Mobile. This gives me a embedded JSON database and gateway to replicate to.
Andrei Craciun – “Wearing Android”
Wearable devices are the gadgets of the moment. They are cool, they are fashionable and even practical :) . Behind the scene there are applications, SDK-s, development tools, concepts, operating systems. Android is very well represented on all the levels. We'll try to explore what means we're offered to develop for Android based wearables, what are the challenges, what are the differences from developing a tablet or phone application, what are the weaknesses we're currently facing and possible ideas of improvement.
Marius Mailat - "Android Forensics, how the Police investigates your device"
Ever wondered how the Police is analyzing the communication traces on a criminal case? My trips in the latest years brought me in contact with companies in security area from Russia, China and Malaysia. Teaching Android Internals for national security agencies forced me to align the Android Internals knowledge with the forensics on Android devices.
I will demo how the Android Internals are constructed and how and what can a policemen extract from an Android device. I will demo the way you can hack your way into a phone internals using the build in Android platform features like: Binder, Kernel architecture, file system, ADB.
The presentation will be backed-up by a practical lab where we analyze live a device from audience.
DAY 1 - iOS
Sam Davies - "To drawRect or not to drawRect: an overview of graphics on iOS"
All too often online advice for constructing beautiful UI on iOS starts out by suggesting that you create a custom UIView subclass and override drawRect, but is this the best approach? What alternatives exist? How should I choose between them.
This talk will involve a high-level look at the different graphical processing options on iOS, including CoreGraphics, CoreAnimation, UIView and OpenGL. Then we'll take a look at the following questions, with plenty of examples: - what does drawRect actually do? - when is drawRect slow? - what are all these CALayer subclasses? - when should I be choosing each of the options?
By the end of the talk we'll have covered some specific examples of how to choose each of the drawing technologies, and will hopefully have persuaded you that drawRect isn't always the best choice.
Jorge Jordán – “Game frameworks (SpriteKit and SceneKit) and analyze the potential of both libraries comparing them with UnitG”
Apple has introduced important features on SpriteKit, its game framework, and took a big step forward by making available SceneKit in iOS8. The combination of both frameworks promises to provide powerful tools to developers and seems to be a tough competitor for Unity.
Mircea Vasiliniuc – “Crash report systems and app analytics tools”
In production environment an app can experience crashes and 'bad experiences' that are hard to reproduce pre-production.
In many cases it is very hard to test every possible scenarios. These kind of issues are usually hard to identify.
One of the best way to lower the troubleshooting effort is to use crash reporting systems.
During the presentation we will go thru the a couple of iOS crash reporting tools.
Also we will cover the spotting of other undesired scenarios using analytics systems.
Tom Maes – “Your app and the world – thinking globally every step of the way”
The iOS platform is in its next phase, where the main growth is no longer in the US, but in new emerging economies. Is your app ready to sell to those markets?
We’ll analyse the numbers pointing to an emerging new non-US centric app market and help you figure out if it makes financial sense for you to internationalise your apps.
Next, we’ll build an overview of the many internationalisation and localisation tasks that await you on the road to global success, with special attention for the new tools offered in Xcode 6 and iOS 8.
Bogdan Iusco – “CloudKit”
CloudKit is a new way of remote storing user's data. It's really easy to setup, it's cheap, it's fast, but is it the right tool for you?
During this talk we'll go over the pros and cons of using CloudKit and we'll see what are the alternatives. As demo, we'll see how to setup a project for using CloudKit.
DAY 2 - WORKSHOPS iOS
Sam Davies - "Adaptive Layout in iOS8. It’s loosely based on his chapters in the iOS8 by Tutorials Ray Wenderlich book."
Although Swift looks like the new exciting thing to come out of WWDC2014, adaptive UI is going to affect your day-to-day app development far sooner. No longer do you have to produce pixel perfect designs for every form factor – including those as-yet unreleased. Instead, you can use the concepts of adaptivity to create universal layouts – which work perfectly on every device.
This workshop will be a hands-on introduction to adaptive UI, focussing on:
– Refresher on autolayout
– Getting started with adaptive layout in IB – Introduction to size classes and trait collections – Solving common adaptive layout issues – Handling rotation in a post-rotation world.
Jorge Arenas – “How to translate a game or an app from Objective-C to Swift”
After last Apple's WWDC many of us, iOS developers, began learning and playing with Swift. One of the bigger concerns Swift raised is what should we do with our existing applications: Should we continue developing the next versions on Objective-C or should we make the leap to Swift programming? In this workshop we are going to overcome our fears by learning how to migrate an Objective-C app to Swift.
DAY 2 - WORKSHOPS ANDROID
Laurent Doguin - "How to setup a real-time, automatic synchronization between a mobile device and a server"
Most mobile apps we develop these days requires access to data hosted on the web. And with this need comes the pain to manage network access, or the lack thereof. This usually leads developers on the path to offline sync.
We'll take you through the basics of working with Couchbase Mobile, including:
• Use cases for Couchbase Mobile
• Building a simple Android app that stores data in Couchbase Mobile
• How to use Couchbase Mobile's automatic syncing between devices and your database servers.
Danail Branekov – “Mobile applications test automation with TenKod EZ TestApp″
This workshop is going to be a hands-on session of creating automated tests for mobile applications with TenKod EZ TestApp. Participants are going to experience how mobile applications testing is now made easy. We would cover the end-to-end scenario from setting up the development environment to getting the test executed on a continuous integration system.
The participants of the workshop should have the following software installed on their laptops:
- Operating system: Windows7/8 or Mac OS 10.10
- Oracle Java 7
- Android SDK + API19 and create one AVD based on API 19. If the laptop is based on an Intel processor, the AVD is recommended to be created out of the Intel image
- Optionally install Genymotion (https://www.genymotion.com/) and prepare one image with API19. Genymotion performance is significantly faster than the standard Android emulator so the experience would be much better.
- Download and install TenKod EZTestApp. In order to do that they need to go to http://www.tenkod.com/download-a-free-trial-of-tenkod-ez-testapp/, register for the evaluation program and will receive a link to the installers (both Windows and MacOS). It is recommended to install EZTestApp a couple of days before the workshop so that they get the latest version.