Слайд 2 ● Введение
● Фреймворки
● Web-приложения
● Native UI, C++ Back

● CouchBase
● Итог
Слайд 10 ● PhoneGap
● Cordova
● Ionic
● Monaca, Taco… ой
Гибриды

Слайд 15Что хорошо?
● Единая Бизнес Логика
● Классные специалисты
● Идеальный интерфейс

● Параллельная разработка
Слайд 16А что плохо?
● Дорогая разработка
● Коммуникация команд
● Дублирование интерфейса

● Мосты между языками
Слайд 18Мост из ObjC в C++
@interface Test : NSObject
+ (int32_t)func(NSString*)s;
@end
@implementation Test
+ (int32_t)func:(NSString*)s {

return SomeCppClass::Func(std::string([s UTF8String],
[s lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
}
@end
Слайд 19Мост из Java в C++
jint JNICALL Java_Test_func(JNIEnv* jniEnv, jobject, jstring js) {
const

jsize len = env->GetStringLength(js);
const jchar* c = env->GetStringChars(js, nullptr);
std::string s = Utf16ToUtf8(std::string(c, len));
env->ReleaseStringChars(js, c);
return SomeCppClass::Func( s );
}
Слайд 21DJINNI
user = record {
name: string;
birthday: date;
}
users_storage = interface +c {

static instance(): users_storage;
find_user(id: i32): optional;
}
Слайд 29 ● NO SQL
● View (Indexes)
● Live Query
● Репликация
СouchBase

Слайд 30Sync Gateway
CBL
CB
CB
CB
Change Feed
Doc update

Слайд 36 ● Быстрый старт
● Прототипирование
● Не native интерфейс
●

Слайд 37 ● Сложная БЛ
● Мосты
● Есть программисты
● Дублирование интерфейса
С++

Слайд 38 ● Большие проекты
● Сложность вхождения
● Серверная инфраструктура
CouchBase
