Какие основные мобильные платформы и подходы к разработке под них вы знаете?

Ответ

Основные мобильные платформы:

  1. Android (Google):

    • Основа: Открытая ОС на базе Linux.
    • Языки: Kotlin (рекомендуемый), Java, C++.
    • Инструменты: Android SDK, Android Studio.
    • Пример UI-теста (Espresso):
      onView(withId(R.id.login_button)) // Найти кнопку по ID
          .perform(click())             // Выполнить клик
          .check(matches(isDisplayed())) // Проверить отображение
  2. 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 и кнопками. Но и для неё, блядь, приложения пишут!

И вот тебе, дружок, как тестировщику, главные грабли, на которые можно впиздюриться:

  1. Жесты, блядь! На андроиде кнопка "Назад", а на iOS её нет, там надо хуярить пальцем по экрану с краю. Пользователь, который пересел с одного на другое, будет орать: "Где, сука, назад?!".
  2. Фрагментация Андроида — это пиздец. Одна и та же прога может на тысяче разных телефонов от сотни производителей выглядеть и работать так, будто её писали разные люди в параллельных вселенных. Один экран длинный как хуй с горы, другой — квадратный, как советский телевизор.
  3. Магазины приложений — отдельная жесть. App Store и Google Play — это как два охранника в клубе: у каждого свои, блядь, тараканы в голове и правила, что можно, а что нет. Не угодишь — будешь месяц свою сборку переделывать, а они будут говорить "не, не пущаем".

Короче, мобильная разработка — это не скучная лекция, а ёперный театр, где каждый день новая драма. То ли язык новый выучат, то ли магазин приложение забракует, то ли на новом китайском телефоне все кнопки съедут в одно место. Весело, блядь!