SlideShare a Scribd company logo
Developing in C++ for Mobile
Igor Kantor
CTO @
С++ in mobile
Our case
• Product: iOS, Android Apps; Backend; Desktop coming
• Communication protocol; API; security; client-server
• A lot of non-trivial code to be duplicated
Android
iOS
Symbian
The whole solution brakes down, because somethings
takes too much time to implement on Android
Why should we re-write the same code
and fix the same bugs 2-3 times?
Goals
1. Less developers, optimize efforts, cost saving
2. Streamline and speed up the development and bugfixing
3. Increase stability and quality of the product
Option 1: cross-platform tools
• PhoneGap
• RhoMobile
• Sencha Touch
• appMobi
• Telerik
• Adobe AIR
• Xamarin
• Appcelerator Titanium
• Corona
• JavaScript
Option2: C++
OK, it’s clear with games. But what about business apps?
Decision
In 2013 we decided to re-design the product architecture and write the
core in C++
OS abstraction layer
Protocol Media
High-level SDK: business login, etc.
iOS
Android
Desktop
JNI
Symbian
C++
More to come
Our results
• Learning curve
• Are we happy? Definitely yes: 70% of code is shared in C++ and
support is much easier
• Streamlined development: we get all the new features
simultaneously
Lesson Learned
• Choose solid and convenient OS abstraction library
• We had to re-write timers routine 3 times!
• Encapsulation and polymorphism
• Understand what should remain native
• Unless 100% sure keep the networking part native
• Get a tool for interface between native language and C++
Recommendations
When to use
Use Don’t use
Long running project/product Short projects, outsourcing
Cost and effort optimization is a
key
Projects are not so complicated
Familiar and ready for C++ and
cross-platform C++ libraries
Don’t have enough C++ expertise
Embrace C++11/14
C++11/14 makes replacing ObjC/Java feasible:
• shared_ptr, unique_ptr
• new containers
• atomics and threading
Define where to put the line
• UI – not a good candidate for C++
• Business logic, Data, Model – perfect candidates
• Define what should remain native: e.g. networking
Choose solid OS abstraction library
• Choose it carefully
• Choose mature only solutions
• It will become your framework to provide you with primitives like
Thread, Timer, File access, etc. etc.
• Options: Qt, Boost, Poco, self-made
Interface
• Define how your Apps will speak to C++ part
• Think this through at the very beginning
• Easy on iOS; relatively easy on Windows (directly or PInvoke)
• JNI – default NDK option for Android. Try to avoid it.
Interface: options
Possible ways to build interfaces:
1. Traditional: 

ObjC ↔ C++ 

Java ↔ JNI ↔ C++
2. Protocol Buffers + ZeroMQ
3. Djinni
4. http://google.github.io/flatbuffers/
Interface: Protocol Buffers + ZeroMQ
Benefits:
1. Your C++ part will act as “local server”
2. Thread safe
3. Language independent interface: don’t
have to define bindings and types for each
platform
Setup build/run process
• Be ready to test your code on Android/iOS which implies in having
both Desktop and Mac
Data layer
• A good candidate for cross-platform C++ implementation
• Many great libraries exists: SQLite, SQLCipher, Realm.io / Poco
• For simple structures use plain SQLite C implementation
Where to start
https://github.com/libmx3/mx3
Start with simple
prototypes just to get the
feeling on timers, threads,
data access, network, etc.
We’re in good company
Thank you
ihor.kantor@gmail.com

More Related Content

Viewers also liked

iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...
iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...
iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...
Lviv Startup Club
 
Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...
Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...
Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...
Lviv Startup Club
 
iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...
iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...
iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...
Lviv Startup Club
 
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
Lviv Startup Club
 
iCamp 2015. Олександр Рись “Лояльність та повторний продаж”
iCamp 2015. Олександр Рись “Лояльність та повторний продаж”iCamp 2015. Олександр Рись “Лояльність та повторний продаж”
iCamp 2015. Олександр Рись “Лояльність та повторний продаж”
Lviv Startup Club
 
Дмитро Лозовицький "Практичні особливості самовдосконалення PMa"
Дмитро Лозовицький "Практичні особливості самовдосконалення PMa" Дмитро Лозовицький "Практичні особливості самовдосконалення PMa"
Дмитро Лозовицький "Практичні особливості самовдосконалення PMa"
Lviv Startup Club
 
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
Lviv Startup Club
 
Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"
Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"
Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"
Lviv Startup Club
 
Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"
Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"
Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"
Lviv Startup Club
 
Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...
Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...
Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...
Lviv Startup Club
 
Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”
Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”
Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”
Lviv Startup Club
 
PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”
PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”
PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”
Lviv Startup Club
 
Віктор Баран "ROMI: стероїди для бізнесу"
Віктор Баран "ROMI: стероїди для бізнесу" Віктор Баран "ROMI: стероїди для бізнесу"
Віктор Баран "ROMI: стероїди для бізнесу"
Lviv Startup Club
 
PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...
PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...
PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...
Lviv Startup Club
 
GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"
GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"
GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"
Lviv Startup Club
 
Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”
Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”
Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”
Lviv Startup Club
 
КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...
КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...
КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...
Lviv Startup Club
 
Тарас Бачинський "Аналіз закону "Про електронну комерцію"
Тарас Бачинський "Аналіз закону "Про електронну комерцію"Тарас Бачинський "Аналіз закону "Про електронну комерцію"
Тарас Бачинський "Аналіз закону "Про електронну комерцію"
Lviv Startup Club
 
Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...
Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...
Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...
Lviv Startup Club
 
Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...
Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...
Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...
Lviv Startup Club
 

Viewers also liked (20)

iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...
iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...
iCamp 2015. Катерина Пучко “Колл-трекінг в дії: нові можливості для контролю ...
 
Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...
Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...
Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних ...
 
iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...
iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...
iCamp 2015. Юлія Пісаревська “Правила найму віддалених співробітників. Як нал...
 
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
 
iCamp 2015. Олександр Рись “Лояльність та повторний продаж”
iCamp 2015. Олександр Рись “Лояльність та повторний продаж”iCamp 2015. Олександр Рись “Лояльність та повторний продаж”
iCamp 2015. Олександр Рись “Лояльність та повторний продаж”
 
Дмитро Лозовицький "Практичні особливості самовдосконалення PMa"
Дмитро Лозовицький "Практичні особливості самовдосконалення PMa" Дмитро Лозовицький "Практичні особливості самовдосконалення PMa"
Дмитро Лозовицький "Практичні особливості самовдосконалення PMa"
 
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
iCamp 2015. Дмитро Кудренко “Трансформації в спілкуванні з клієнтом за допомо...
 
Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"
Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"
Руслан Белзюк "Як і навіщо завойовувати симпатію клієнта"
 
Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"
Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"
Lviv MD Day 2015 Іван Лаврів "Mobile development with React Native"
 
Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...
Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...
Lviv Freelance Club Олексій Яновський "Як фрілансеру стати ФОП-ом і працювати...
 
Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”
Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”
Назар Іваненко ”Кар’єра у фрілансі та життя на Марсі”
 
PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”
PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”
PMday 2015. Денис Прилуцький “Project Estimations: What, Why, and How?”
 
Віктор Баран "ROMI: стероїди для бізнесу"
Віктор Баран "ROMI: стероїди для бізнесу" Віктор Баран "ROMI: стероїди для бізнесу"
Віктор Баран "ROMI: стероїди для бізнесу"
 
PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...
PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...
PMday 2015. Любов Самойлова “Post-project/post-mortem report: як перетворити ...
 
GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"
GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"
GameDev 2017 - Богдан Дучак "Договори, без яких розробник як без рук"
 
Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”
Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”
Олена Занічковська “Інновації як інструмент продажу на глобальних ринках”
 
КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...
КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...
КатеринаБожкова “Від Elance-oDesk до Upwork. знайомство з оновленою платформо...
 
Тарас Бачинський "Аналіз закону "Про електронну комерцію"
Тарас Бачинський "Аналіз закону "Про електронну комерцію"Тарас Бачинський "Аналіз закону "Про електронну комерцію"
Тарас Бачинський "Аналіз закону "Про електронну комерцію"
 
Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...
Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...
Едвард Руденко "Мат в 2 хода, або як отримати Клієнта в корпоративному сегмен...
 
Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...
Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...
Максим Зелевський "Як створити успішний проект сидячі у декреті і працюючи ли...
 

Similar to Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS i Android"

Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
jaxarcsig
 
Introduction of c++ course
Introduction of c++ courseIntroduction of c++ course
Introduction of c++ course
kritikasoni15
 
Compilation Of C/C++ program in Android
Compilation Of C/C++ program in AndroidCompilation Of C/C++ program in Android
Compilation Of C/C++ program in Android
rahulverma1080
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
Craig Dunn
 
Programming in c plus plus2
Programming in c plus plus2Programming in c plus plus2
Programming in c plus plus2
AA Coaching Academy
 
C++ programming
C++ programmingC++ programming
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREC & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
jatin batra
 
Ember Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with EmberEmber Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with Ember
Alex Blom
 
miniproject.pptx
miniproject.pptxminiproject.pptx
miniproject.pptx
AnkurMahour1
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
The IOT Academy
 
Enterprise ipad Development with notes
Enterprise ipad Development with notesEnterprise ipad Development with notes
Enterprise ipad Development with notes
jaxarcsig
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
Ron Munitz
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
Kostis Dadamis
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
Brian LeRoux
 
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).docIntroduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).doc
MayurWagh46
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
RatnaJava
 
Dev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar BhattiDev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar Bhatti
Taswar Bhatti
 
C# everywhere
C# everywhereC# everywhere
C# everywhere
Craig Dunn
 
Ios development
Ios developmentIos development
Ios development
Shakil Ahmed
 

Similar to Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS i Android" (20)

Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
 
Introduction of c++ course
Introduction of c++ courseIntroduction of c++ course
Introduction of c++ course
 
Compilation Of C/C++ program in Android
Compilation Of C/C++ program in AndroidCompilation Of C/C++ program in Android
Compilation Of C/C++ program in Android
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
Programming in c plus plus2
Programming in c plus plus2Programming in c plus plus2
Programming in c plus plus2
 
C++ programming
C++ programmingC++ programming
C++ programming
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREC & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
 
Ember Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with EmberEmber Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with Ember
 
miniproject.pptx
miniproject.pptxminiproject.pptx
miniproject.pptx
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 
Enterprise ipad Development with notes
Enterprise ipad Development with notesEnterprise ipad Development with notes
Enterprise ipad Development with notes
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).docIntroduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).doc
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
 
Dev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar BhattiDev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar Bhatti
 
C# everywhere
C# everywhereC# everywhere
C# everywhere
 
Ios development
Ios developmentIos development
Ios development
 

More from Lviv Startup Club

Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Lviv Startup Club
 
Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...
Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...
Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...
Lviv Startup Club
 
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Lviv Startup Club
 
Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)
Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)
Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)
Lviv Startup Club
 
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Lviv Startup Club
 
Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)
Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)
Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)
Lviv Startup Club
 
Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...
Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...
Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...
Lviv Startup Club
 
Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...
Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...
Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...
Lviv Startup Club
 
Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...
Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...
Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...
Lviv Startup Club
 
Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)
Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)
Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)
Lviv Startup Club
 
Igor Protsenko: Difference between outsourcing and product companies for prod...
Igor Protsenko: Difference between outsourcing and product companies for prod...Igor Protsenko: Difference between outsourcing and product companies for prod...
Igor Protsenko: Difference between outsourcing and product companies for prod...
Lviv Startup Club
 
Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...
Lviv Startup Club
 
Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)
Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)
Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)
Lviv Startup Club
 
Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...
Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...
Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...
Lviv Startup Club
 
Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)
Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)
Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)
Lviv Startup Club
 
Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...
Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...
Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...
Lviv Startup Club
 
Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...
Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...
Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...
Lviv Startup Club
 
Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...
Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...
Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...
Lviv Startup Club
 
Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...
Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...
Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...
Lviv Startup Club
 
Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...
Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...
Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...
Lviv Startup Club
 

More from Lviv Startup Club (20)

Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
 
Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...
Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...
Artem Bykovets: Чому люди не стають раптово кросс-функціональними, хоча в нас...
 
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
 
Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)
Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)
Helen Lubchak: Тренди в управлінні проєктами та miltech (UA)
 
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)
 
Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)
Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)
Anatolii Vintsyk: Комунікації в проєкті під час війни (UA)
 
Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...
Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...
Natalia Renska & Roman Astafiev: Нарциси і психопати в організаціях. Як це вп...
 
Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...
Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...
Diana Natkhir: Інструменти Change management для роботи з клієнтами в продукт...
 
Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...
Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...
Khristina Pototska: Steering the Ship: Product Management in Startups vs. Glo...
 
Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)
Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)
Oleksandr Buratynskyi: Як Agile Coach мікроменеджером став 🙃 (UA)
 
Igor Protsenko: Difference between outsourcing and product companies for prod...
Igor Protsenko: Difference between outsourcing and product companies for prod...Igor Protsenko: Difference between outsourcing and product companies for prod...
Igor Protsenko: Difference between outsourcing and product companies for prod...
 
Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...
 
Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)
Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)
Valeriy Kozlov: Taming the Startup Chaos: GTD for Founders & Small Teams (UA)
 
Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...
Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...
Anna Kompanets: Проблеми впровадження проєктів, про які б ви ніколи не подума...
 
Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)
Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)
Viktoriia Honcharova: PMI: нова стратегія розвитку управління проєктами (UA)
 
Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...
Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...
Andrii Mandrika: Як системно допомагати ЗСУ, використовуючи продуктовий підхі...
 
Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...
Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...
Michael Vidyakin: From Vision to Victory: Mastering the Project-Strategy Conn...
 
Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...
Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...
Kateryna Kubasova: Абстрактне Оксфордське лідерство конкретному українському ...
 
Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...
Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...
Andrii Salii: Навіщо публічному сектору NPS: будуємо довіру через відкритість...
 
Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...
Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...
Anton Hlazkov: Впровадження змін – це процес чи проєкт? Чому важливо розуміти...
 

Recently uploaded

Building Your Employer Brand with Social Media
Building Your Employer Brand with Social MediaBuilding Your Employer Brand with Social Media
Building Your Employer Brand with Social Media
LuanWise
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
Nicola Wreford-Howard
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
marketing317746
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
Adam Smith
 
Best practices for project execution and delivery
Best practices for project execution and deliveryBest practices for project execution and delivery
Best practices for project execution and delivery
CLIVE MINCHIN
 
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdfThe 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
thesiliconleaders
 
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
my Pandit
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
jeffkluth1
 
buy old yahoo accounts buy yahoo accounts
buy old yahoo accounts buy yahoo accountsbuy old yahoo accounts buy yahoo accounts
buy old yahoo accounts buy yahoo accounts
Susan Laney
 
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
fisherameliaisabella
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
my Pandit
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
aragme
 
BeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdfBeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdf
DerekIwanaka1
 
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdfikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
agatadrynko
 
An introduction to the cryptocurrency investment platform Binance Savings.
An introduction to the cryptocurrency investment platform Binance Savings.An introduction to the cryptocurrency investment platform Binance Savings.
An introduction to the cryptocurrency investment platform Binance Savings.
Any kyc Account
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
Top Forex Brokers Review
 
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
SOFTTECHHUB
 
How to Implement a Real Estate CRM Software
How to Implement a Real Estate CRM SoftwareHow to Implement a Real Estate CRM Software
How to Implement a Real Estate CRM Software
SalesTown
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
ssuser567e2d
 

Recently uploaded (20)

Building Your Employer Brand with Social Media
Building Your Employer Brand with Social MediaBuilding Your Employer Brand with Social Media
Building Your Employer Brand with Social Media
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
 
Best practices for project execution and delivery
Best practices for project execution and deliveryBest practices for project execution and delivery
Best practices for project execution and delivery
 
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdfThe 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
 
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
 
buy old yahoo accounts buy yahoo accounts
buy old yahoo accounts buy yahoo accountsbuy old yahoo accounts buy yahoo accounts
buy old yahoo accounts buy yahoo accounts
 
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
 
BeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdfBeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdf
 
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdfikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
 
An introduction to the cryptocurrency investment platform Binance Savings.
An introduction to the cryptocurrency investment platform Binance Savings.An introduction to the cryptocurrency investment platform Binance Savings.
An introduction to the cryptocurrency investment platform Binance Savings.
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
 
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
 
How to Implement a Real Estate CRM Software
How to Implement a Real Estate CRM SoftwareHow to Implement a Real Estate CRM Software
How to Implement a Real Estate CRM Software
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
 

Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS i Android"

  • 1. Developing in C++ for Mobile Igor Kantor CTO @
  • 3. Our case • Product: iOS, Android Apps; Backend; Desktop coming • Communication protocol; API; security; client-server • A lot of non-trivial code to be duplicated Android iOS Symbian The whole solution brakes down, because somethings takes too much time to implement on Android
  • 4. Why should we re-write the same code and fix the same bugs 2-3 times?
  • 5. Goals 1. Less developers, optimize efforts, cost saving 2. Streamline and speed up the development and bugfixing 3. Increase stability and quality of the product
  • 6. Option 1: cross-platform tools • PhoneGap • RhoMobile • Sencha Touch • appMobi • Telerik • Adobe AIR • Xamarin • Appcelerator Titanium • Corona • JavaScript
  • 7. Option2: C++ OK, it’s clear with games. But what about business apps?
  • 8. Decision In 2013 we decided to re-design the product architecture and write the core in C++ OS abstraction layer Protocol Media High-level SDK: business login, etc. iOS Android Desktop JNI Symbian C++ More to come
  • 9.
  • 10. Our results • Learning curve • Are we happy? Definitely yes: 70% of code is shared in C++ and support is much easier • Streamlined development: we get all the new features simultaneously
  • 11. Lesson Learned • Choose solid and convenient OS abstraction library • We had to re-write timers routine 3 times! • Encapsulation and polymorphism • Understand what should remain native • Unless 100% sure keep the networking part native • Get a tool for interface between native language and C++
  • 13. When to use Use Don’t use Long running project/product Short projects, outsourcing Cost and effort optimization is a key Projects are not so complicated Familiar and ready for C++ and cross-platform C++ libraries Don’t have enough C++ expertise
  • 14. Embrace C++11/14 C++11/14 makes replacing ObjC/Java feasible: • shared_ptr, unique_ptr • new containers • atomics and threading
  • 15. Define where to put the line • UI – not a good candidate for C++ • Business logic, Data, Model – perfect candidates • Define what should remain native: e.g. networking
  • 16. Choose solid OS abstraction library • Choose it carefully • Choose mature only solutions • It will become your framework to provide you with primitives like Thread, Timer, File access, etc. etc. • Options: Qt, Boost, Poco, self-made
  • 17. Interface • Define how your Apps will speak to C++ part • Think this through at the very beginning • Easy on iOS; relatively easy on Windows (directly or PInvoke) • JNI – default NDK option for Android. Try to avoid it.
  • 18. Interface: options Possible ways to build interfaces: 1. Traditional: 
 ObjC ↔ C++ 
 Java ↔ JNI ↔ C++ 2. Protocol Buffers + ZeroMQ 3. Djinni 4. http://google.github.io/flatbuffers/
  • 19. Interface: Protocol Buffers + ZeroMQ Benefits: 1. Your C++ part will act as “local server” 2. Thread safe 3. Language independent interface: don’t have to define bindings and types for each platform
  • 20. Setup build/run process • Be ready to test your code on Android/iOS which implies in having both Desktop and Mac
  • 21. Data layer • A good candidate for cross-platform C++ implementation • Many great libraries exists: SQLite, SQLCipher, Realm.io / Poco • For simple structures use plain SQLite C implementation
  • 22. Where to start https://github.com/libmx3/mx3 Start with simple prototypes just to get the feeling on timers, threads, data access, network, etc.
  • 23. We’re in good company