Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым
Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Мы рассмотрим область применения, архитектуру и основные особенности такой известной операционной системы как Android. Также расскажем о процессе создания мобильного приложения TulaDev, о проблемах с которыми мы столкнулись и о способах их решения. Вы можете найти приложение для Android <a>на Google Play</a>
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
В последнее время в промышленной разработке ПО особую популярность обретают Domain-Specific Lanugages (DSL). Они драматически упрощают разработку и дают возможность “программировать” не только программистам, но и пользователям прикладных программ.
В своем докладе я расскажу об опыте использования DSL применительно к С++, причем упор будет сделан на производительность кода DSL, и его мгновенную “встраиваемость” в запущенную программу путем компиляции DSL-кода в нативный код с помощью инструментария LLVM.
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
Наша команда в DevExpress недавно выпустила Preview версию нового продукта, RTF web-редактора – ASPxRichEdit.
Продукт требует высокой отзывчивости на действия пользователя и максимальной производительности. Поэтому клиент получился «толстым» в отличие от «тонких клиентов» большинства бизнес-приложений.
В составе продукта два полнофункциональных компонента - клиентский и серверный текстовые процессоры. Оба компонента работают независимо друг от друга. Клиентская часть создавалась как оптимизированная версия серверного компонента, переписанного с .NET на TypeScript.
Клиентская часть не уступает в сложности серверной. Кроме того, возникают дополнительные проблемы синхронизации состояний моделей на клиенте и сервере и глубокого тестирования клиент-серверного взаимодействия.
В этом докладе вы узнаете, как мы разрабатывали этот продукт, какие проблемы встретили и какие методики тестирования использовали.
Гуманитарные специальности в IT-индустрии
Анна Астахова, старший аккаунт-менеджер в компании Nоveо.
Noveo — международная IT‑компания. Наши главные офисы разработки ПО находятся в Новосибирске и Санкт-Петербурге, представительства — в Москве, Париже, Лондоне и Сиэтле.
2. Особенности платформы Android
Достоинства
Широкие возможности платформы
Открытость
Интеграция с чужими приложениями
Переиспользование библиотек
Java
Недостатки
Необходимость поддержки различных устройств
Проблемы с памятью
2 Введение в Android-разработку
4. Особенности приложения
Приложение ↔ название пакета
"my.favorite.package.application"
Приложение ↔ пользователь Linux
1 видимое приложение
Жизненный цикл приложения ̸= жизненный цикл процесса
Управление жизненным циклом приложения и все View в
UIThread
4 Введение в Android-разработку
6. AndroidManifest.xml
определяет имя Java-пакета приложения = уникальный
идентификатор для приложения.
описывает компоненты приложения: Activity, Service,
BroadcastReceiver, ContentProvider. Определяет имена
классов, реализующие каждый из компонентов и оглашает
их возможности (например, какие Intent-сообщения они
могут обрабатывать). Эти объявления позволяют системе
Android знать, какие компоненты и при каких условиях
могут быть запущены.
объявляет разрешения, которые приложение должно
иметь для доступа к защищённым частям API и
взаимодействия с другими приложениями.
объявляет минимальный уровень Android API, который
требует приложение.
и другие...
6 Введение в Android-разработку
7. Структура проекта (IDEA)
1. Папка с проектом IntelliJ IDEA
2. Папка с исходными файлами
3. Activity
4. Папка с различными ресурсами
5. Разметка главного экрана
6. Папка со значениями (строки,
числа)
7. Изображения
8. Автоматически сгенерированная
папка с данными о ресурсах
9. Класс с данными о ресурсах для
использования в коде
7 Введение в Android-разработку
8. Структура проекта (Android Studio)
Вместо bin — build, там всё
сгенерированное
Папка с исходными файлами
теперь содержит и ресурсы
Файлы настройки Gradle
Многие настройки вынесены в
Gradle
Библиотеки можно как
подкладывать руками, так и
подгружать автоматически
8 Введение в Android-разработку
9. Ресурсы
Типы ресурсов
drawable
.png, .jpg, .gif
.9.png
.xml
shape
selector
layout
anim
values
strings
dimensions
colors
arrays
xml
raw
Селекторы ресурсов
Ориентация
land, port
Плотность точек
ldpi, mdpi, hdpi, xhdpi,
nodpi
Размер экрана
small, normal, large,
xlarge
Версия Android
v3, ..., v15
Язык
en, fr, ru, ...
9 Введение в Android-разработку
10. Ресурсы R.java
package my.favorite;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int message_edit_text=0x7f050000;
public static final int message_show_text_view=0x7f050003;
public static final int send_button=0x7f050002;
public static final int show_button=0x7f050001;
}
public static final class layout {
public static final int message_input_layout=0x7f030000;
public static final int message_show_layout=0x7f030001;
}
public static final class string {
public static final int app_name=0x7f040003;
public static final int message_input_message_hint=0x7f040000;
public static final int message_input_send_button=0x7f040002;
public static final int message_input_show_button=0x7f040001;
}
}
10 Введение в Android-разработку
11. Строковые ресурсы
res/values/strings.xml
<string name="simple_string">It is a simple string</string>
<string name="args_string">It is a string with integer arg: %1$d</string>
res/values-ru/strings.xml
<string name="simple_string">Это обычная строка</string>
<string name="args_string">Это строка с целочисленным аргументом:
%1$d</string>
src/my/favorite/TestActivity.java
TextView simpleText = (TextView)findViewById(R.id.text_view);
simpleText.setText(getString(R.string.simple_string));
TextView argsText = (TextView)findViewById(R.id.text_view);
simpleText.setText(getString(R.string.args_string, 999));
11 Введение в Android-разработку
15. Fragment
Доступны с API 11 (Android 3.0)
Портированы для старых версий в Android Support library
Позволяют объединить несколько экранов в одном.
Существуют только как часть Activity.
Для телефонов: Для планшетов:
15 Введение в Android-разработку
16. Жизненный цикл Fragment
Привязано к жизненному
циклу Activity
Добавлены методы по
более тонкому
оправлению состоянием
16 Введение в Android-разработку
17. Пример использования Fragment
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.realtabcontent, new MyFragment());
fragmentTransaction.commit();
}
});
17 Введение в Android-разработку