Alias
Alias – игра для iPhone, в которой участникам предлагается поочередно или объяснять появляющиеся слова, или отгадывать их.
Возможности
- Количество игроков от двух до девяти
- Для четырёх, шести и восьми игроков доступны командные режимы
В приложение доступно около 5000 слов, которые разделены на пять списков:
- Русские существиетльные
- Русские глаголы
- Русские прилагательные
- English nouns
- English verbs
Архитектура
- SOA + VIPER modules
Статистика проекта
Объект | Количество |
---|---|
Строк | 7778 |
Модуль уровня Presentation | 9 |
Модуль уровня Service | 4 |
Модуль уровня Core | 2 |
API | 2 |
Class | 104 |
Protocol | 62 |
Struct | 14 |
*.swift | 117 |
Информация обновлена 11 декабря 2019 года.
Защищённый переводчик
Для безопасного хранения токена для доступа к ресурсу Яндекс.Переводчик, сервис SafeTranslater
не хранит токен в явном виде, а формирует его во время исполнения. При этом для защиты токена от статического анализа, анализа исходных кодов, используется обфускация, от динамического – обнаружение отладчика и противодействие получения им истинного значения токена. Также, для сервиса применена защита от встраивания модуля в другие проекты. Использование такого сервиса в проекте в виде исходного кода значительно снижает безопасность ключа. Такой способ хранения был предпочтен бинарной библиотеке в связи с принципом обеспечения информационной безопасности – разумной достаточности. Для выбранного способа хранения сервиса автору известны простые способы восстановления истинного значения токена.
На текущий момент в проекте не используются возможности защищённого переводчика. Код формировался в то время, когда брались английские слова из интернета и было необходимо отобразить в приложении его русский эквивалент. Сейчас списки слов хранятся в файлах формата CSV и при первой загрузке загружаются в память, после чего сохраняются в Core Data, из которой позже они и будут взяты.
Уменьшение размера архива приложения
На 11 декабря 2019 г. вес архива приложения составляет 2,2 MB
В коммитах от 22 ноября 2019 г.:
bca7e7519bf35ae0a453000b17f85fcf924af1c3
a5eb124e21e295077a18aa3cbb2c49aff80f336d
41e78330ff8dd518c36409cfa607bb3d7cd2ad50
к спроектированным модулям проекта были применены следующие оптимизации:
Оптимизация | Размер | Время |
---|---|---|
Deployment Target – 12.1, Debug | 44,6 MB | 14:49 |
Deployment Target – 12.1, Release | 42,6 MB | 14:49 |
Deployment Target – 12.2, Debug | 2,5 MB | 14:50 |
Deployment Target – 12.2, Release | 2,1 MB | 14:48 |
Deployment Target – Default, Debug | 2,5 MB | 14:45 |
Deployment Target – Default, Release | 2,1 MB | 14:47 |
Deployment Target – 12.2, Debug, - libswiftRemoteMirror.dylib | 787 KB | 14:53 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib | 405 KB | 14:53 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib + Osize | 425 KB | 15:22 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib - Disable Safety Checks | 361 KB | 15:29 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib - Disable Safety Checks - nibs + manual layout - metadata | 353 KB | 21:37 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib - Disable Safety Checks - nibs + manual layout - metadata + objc direct call presenters methods | 347 KB | 22:28 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib - Disable Safety Checks - nibs + manual layout - metadata + objc direct call presenters methods - empty assets - empty icon | 347 KB | 22:34 |
Deployment Target – 12.2, Release, - libswiftRemoteMirror.dylib - Disable Safety Checks - nibs + manual layout - metadata + objc direct call presenters methods - empty assets - empty icon + if def debug + debugPrint | 345 KB | 22:53 |
Список литературы
- iOS Школа - SberGraduate
- API Переводчика - Технологии Яндекса
- Архитектурные паттерны в iOS / Блог компании Badoo / Хабр
Авторы
Авторские права
Copyright © 2019 Андрей Зорькин. All rights reserved.