Ответ
Основные мобильные платформы:
-
Android (Google):
- Основа: Открытая ОС на базе Linux.
- Языки: Kotlin (рекомендуемый), Java, C++.
- Инструменты: Android SDK, Android Studio.
- Пример UI-теста (Espresso):
onView(withId(R.id.login_button)) // Найти кнопку по ID .perform(click()) // Выполнить клик .check(matches(isDisplayed())) // Проверить отображение
-
iOS (Apple):
- Основа: Закрытая ОС для устройств Apple (iPhone, iPad).
- Языки: Swift (рекомендуемый), Objective-C.
- Инструменты: Xcode, iOS SDK.
- Пример UI-теста (XCTest):
let app = XCUIApplication() app.buttons["Submit"].tap() // Нажать кнопку XCTAssertTrue(app.staticTexts["Success"].exists) // Проверить текст
Кроссплатформенная разработка (один код для нескольких платформ):
- React Native (Meta): Использует JavaScript/React. Рендерит нативные компоненты.
- Flutter (Google): Использует язык Dart. Рендерит собственный UI-движок (Skia), что обеспечивает идентичный вид на всех платформах.
- Xamarin/.NET MAUI (Microsoft): Использует C# и .NET.
Другие платформы:
- HarmonyOS (Huawei): Мультиустройственная ОС.
- KaiOS: Для кнопочных телефонов с поддержкой 4G и веб-приложений.
Для тестировщика важно учитывать:
- Различия в жестах и навигации (например, "Назад" в Android vs. свайпы в iOS).
- Фрагментацию Android (множество версий ОС, производителей, разрешений экранов).
- Требования App Store/Google Play к контенту, безопасности и производительности.
Ответ 18+ 🔞
Давай разберём этот зоопарк мобильных платформ, а то голова кругом идёт, ёпта.
Смотри, их, блядь, как собак нерезаных, но основных две, как яйца у здорового мужика.
Первое яйцо — Андроид (от Гугла). Этот, сука, как коммуналка — открытый всем нараспашку, на базе Линукса. Кодят там в основном на Kotlin (сейчас это модно, блядь) или на старом добром Java. Собирают всё в Android Studio. Ну и тесты у них, понятное дело, свои, с прибамбасами. Вот, смотри, как они кнопку тыкают и проверяют, не отвалилась ли она:
onView(withId(R.id.login_button)) // Ищут кнопку, как клад
.perform(click()) // Тыкают в неё, блядь
.check(matches(isDisplayed())) // И глазами шарытят: "А жива ли?"
Второе яйцо — iOS (от Эппла). А это уже, сука, элитный закрытый клуб «только для своих». Только их железо, их ОС. Языки — Swift (красивый такой, блядь) или древний Objective-C. Всё делается в Xcode, и если он зависнет — волнение ебать, терпения ноль. Тесты у них тоже с понтами:
let app = XCUIApplication()
app.buttons["Submit"].tap() // Просто тыкнули кнопку
XCTAssertTrue(app.staticTexts["Success"].exists) // И охуели, если надписи "Успех" нет
А теперь, блядь, самое интересное — кроссплатформа. Это когда ленивые или умные (хз кто) пытаются одним кодом накормить все платформы сразу. Получается обычно "и вашим, и нашим, но нихуя толком".
- React Native (от Меты): Берут свои веб-поделки на JavaScript, обмазывают магией и говорят: "Вот тебе нативное приложение, блядь". Иногда работает, иногда — пиздец.
- Flutter (опять Гугл): Тут вообще свой язык Dart и свой движок для рисования интерфейсов. Выглядит везде одинаково, что и хорошо, и подозрительно одновременно. Как будто надел один костюм и на свадьбу, и в баню.
- Xamarin / .NET MAUI (от Майкрософт): Ну тут, блядь, C# и .NET. Для тех, кто скучает по Винде на своём айфоне.
А ещё есть, блядь, другие, про которые все слышали, но мало кто видел вживую:
- HarmonyOS (Хуавей): Загадочная мультиустройственная хрень, которая "вот-вот всех победит".
- KaiOS: Для тех, у кого в кармане не смартфон, а, извините, "звонилка" с 4G и кнопками. Но и для неё, блядь, приложения пишут!
И вот тебе, дружок, как тестировщику, главные грабли, на которые можно впиздюриться:
- Жесты, блядь! На андроиде кнопка "Назад", а на iOS её нет, там надо хуярить пальцем по экрану с краю. Пользователь, который пересел с одного на другое, будет орать: "Где, сука, назад?!".
- Фрагментация Андроида — это пиздец. Одна и та же прога может на тысяче разных телефонов от сотни производителей выглядеть и работать так, будто её писали разные люди в параллельных вселенных. Один экран длинный как хуй с горы, другой — квадратный, как советский телевизор.
- Магазины приложений — отдельная жесть. App Store и Google Play — это как два охранника в клубе: у каждого свои, блядь, тараканы в голове и правила, что можно, а что нет. Не угодишь — будешь месяц свою сборку переделывать, а они будут говорить "не, не пущаем".
Короче, мобильная разработка — это не скучная лекция, а ёперный театр, где каждый день новая драма. То ли язык новый выучат, то ли магазин приложение забракует, то ли на новом китайском телефоне все кнопки съедут в одно место. Весело, блядь!