2. Встречаем по одежке
• Современная платформа
• Простота использования
• Сотни тысяч приложений
• Удобные средства
разработки
3. А надо ли провожать?
• Является ли Android мобильной
платформой в традиционном понимании?
• Как нам быстрее разрабатывать
качественные приложения?
• Можем ли мы свободно использовать
знания других платформ/библиотек?
4. Традиционные мобильные
платформы
• Ограниченные ресурсы
• Упрощенный интерфейс
• Урезанные возможности
программирования
5. Нет ограничений:
аппаратная часть
• 512 Mb RAM
• dual core CPU at 1Ghz
• Open GL ES 2.0
• аппаратная поддержка
кодирования/декодирования multimedia
• 32Gb на внешнем носителе
6. Нет ограничений:
интерфейс
• Cенсорный (как
правило, ёмкостный
экран)
• Высокое разрешение (WVGA и выше)
• Множество аппаратных кнопок
7. Нет ограничений:
разработка
LD A,23
LD B,100
• Java 1.5, JIT LD C,53
ADD A,B
• SQLite SUB C
• XML/JSON
• HttpClient
8. Что же общего?
Ёмкость аккумулятора конечна!
Небходимо минимизировать нагрузку
(выполняемые действия) с целью экономного
расходования энергии.
17. Приложение: нити и
процессы
• Свободное использование нитей
(threads)
• Свободное использование многих
процессов
• Автоматическое разнесение компонентов
по разным процессам
Платформа обеспечивает управление
процессами и межпроцессное
взаимодействие компонентов.
20. Android: MVC
MVC - это архитектурный шаблон.
Android не реализует какой-то конкретный framework.
21. Android, Real MVC: View
"Отвечает за отображение информации
(пользовательский интерфейс)."
android.view.*, android.widget.*
22. Android, Real MVC: Model
"Предоставляет данные, а также реагирует на запросы,
изменяя своё состояние."
android.content.*, android.database.*
23. Android, Real MVC: Controller
"Интерпретирует данные, введённые пользователем, и
информирует модель и представление о необходимости
соответствующей реакции."
android.widget.*Adapter, android.widget.*:event callbacks
24. Правило №1
Java
Минимум средние знания Java 1.5.
25. Правило №1: Java!
Java
нет, не так, лучше вот так:
Java
Минимум средние знания Java 1.5.
Если знаний Java нет - хорошее приложение
создать не удастся.
26. "Настоящая" Java -
"настоящий" код?
Далеко не все подходы (design patterns & best
practices) из JSE/JEE применимы.
Критерии оценки JEE приложения и Android
приложения в корне различаются.
28. Data Access Object
1.Мы не можем реально использовать что-
либо вместо SQLite
2.SQLite тесно итегрирован с другими
компонетами платформы.
29. Value Object
Value Object (Data Transfer Object)
+
EJB
=
минимум накладных расходов на
сериализацию/десериализацию
30. Все уже интегрировано
Все компоненты платформы Android созданы с
учетом их тесного взаимодействия и максимально
интегрированы друг с другом.
31. Безопасность: права
доступа
Интеграция имеет свои
недостатки.
Какое приложение имеет
больше шансов напугать
пользователя?
32. Права доступа: что же
сломано?
Платформа Android Android Market не
поддерживает гибкое поддерживает зависимости
управление permissions. между приложениями.
33. Права доступа:
уменьшать!
• Не запрашивать больше, чем реально нужно
для работы приложения.
• Не использовать третьесторонних библиотек,
требующих дополнительных permissions.
34. Права доступа: разделять
• Выделить permissions, не критичные для
основной функциональности приложения, и
вынести их в отдельные модули (APK)
35. Права доступа: зависимости
Минус: Android Market не поддерживает
зависимости между приложениями.
Плюс: пользователи уже привыкли к такому
подходу, так как много приложений уже
используют его.
36. Разнообразие рынка
Совет от Google:
Не раздражайте пользователя, не заставляйте его искать
альтернативы Вашему приложению.