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

«Какие основные мобильные платформы и подходы к разработке под них вы знаете?» — вопрос из категории Мобильное тестирование, который задают на 23% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

  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 к контенту, безопасности и производительности.