Tworzenie BuildVariants poprzez Gradle krok po kroku

Tworzenie BuildVariants poprzez Gradle krok po kroku
Podczas tworzenia aplikacji nieraz zdarza się, że w pewnym momencie chcemy uzyskać kilka wersji naszej aplikacji, które różnią się mniej lub bardziej istotnymi detalami. Aby w łatwy sposób stworzyć różne wersje aplikacji, wystarczy dokonać kilku zmian w Gradle.

Wersje aplikacji z Gradle – jakie mamy możliwości?

Android Studio wraz z Gradle wspiera tworzenie różnych wersji aplikacji poprzez dodawanie kolejnych BuildTypes i ProductFlavors. Ale zanim powiemy sobie więcej o tym, warto wspomnieć o jakich różnych wersjach mowa. Możemy np. chcieć uzyskać wersję, które różnią się applicationId, minimalną wspieraną wersją SDK, podpisane bądź nie. Nasze wersje mogą się również różnić wewnętrznie wykorzystywanymi parametrami, jak choćby wykorzystywany url do API.

BuildTypes – różne rodzaje

Przy tworzeniu projektu w AndroidStudio w Gradle mamy domyślnie 2 rodzaje dla BuildTypes: debug i release. Te typy odnoszą się do szeregu ustawień podczas budowania projektu. To jednocześnie dobre miejsce do zdefiniowania np. lokalizacji i nazwy generowanych buildów:

buildTypes {
release {
applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, "releaseBuildHeader" + defaultConfig.versionName + ".apk")
}
}
}
debug { (...) }
}

ProductFlavors

ProductFlavors z kolei umożliwia nam definiowanie parametrów wykorzystywanych w kodzie aplikacji. Można tu jednocześnie np. rozróżniać minSdkVersion. Poniżej przedstawiony przykład pokazuje, jak odróżnić między sobą wersje poprzez różne adresy URL do API, z których jedno wymaga certyfikatu, a drugie nie:

productFlavors {
live {
applicationId 'pl.holdapp.testapp'
buildConfigField 'String', 'API_URL', '"https://some-api-url.com"'
buildConfigField 'boolean', 'NEED_CERTIFICATE', "false"
}
dev {
applicationId 'pl.holdapp.testapp.dev'
buildConfigField 'String', 'API_URL', '"https://another-api-url.com"'
buildConfigField 'boolean', 'NEED_CERTIFICATE', "true"
}
}

Jak widać posługujemy się tutaj buildConfigField, gdzie podajemy kolejno ‘typ definiowanej stałej’, ‘nazwę’ oraz ‘wartość’. No dobrze, lecz zostało jeszcze pytanie, jak z tej wartości skorzystać wewnątrz kodu naszej aplikacji? Jak się okazuje, jest to równie proste. Wystarczy w kodzie odwołać się do stałej w następujący sposób:

if (BuildConfig.NEED_CERTIFICATE)
okHttpBuilder.sslSocketFactory((sslContext.getSocketFactory()));


W efekcie posiadanych BuildTypes i ProductFlavors po zsynchronizowaniu projektu (po zmianach wprowadzonych w Gradle), utworzyły nam się cztery BuildVariants:

W efekcie możemy swobodnie przełączać się między wariantami, aby utworzyć odpowiednią wersję aplikacji. I to przy minimalnym wysiłku. To bardzo praktyczne i pomocne rozwiązanie, które może zaoszczędzić sporo czasu.

Dowiedz się więcej

BDD przy użyciu JGiven, czyli jak ułatwić sobie pracę

BDD czyli Behavior-Driven-Development jest metodą programowania, w której klienci biznesowi, programiści i testerzy opisują zachowanie aplikacji przy pomocy scenariuszy. Scenariusze pisane są przy użyciu uzgodnionej notacji i języka, tak aby były zrozumiałe dla wszystkich stron. Co jeszcze warto o niej wiedzieć?
Przeczytaj

5 powodów, dla których warto budować UI w ConstraintLayoucie

ConstraintLayout to popularne rozwiązanie, z którego twórcy aplikacji na Androida korzystają na co dzień. I nie bez powodu! Jeśli dopiero zaczynasz przygodę z programowaniem, poznaj najważniejsze zalety tego layoutu. Dzięki temu szybciej zrozumiesz jego działanie, a budowa aplikacji stanie się łatwiejsza.
Przeczytaj

Jak wykorzystać feature flags, żeby zyskać większą kontrolę nad aplikacją?

Chyba każdy, kto zajmuje się budową oprogramowania może opowiedzieć kilka historii o niedziałających funkcjach. Starannie tworzymy aplikacje z niewielkich elementów, stosujemy zaawansowane wzorce architektury, ale i tak czasem coś odmawia posłuszeństwa. Skutkuje to błędami, a nawet awarią systemu. Wtedy sytuację może uratować feature toggling. Sprawdź, jak wdrożyć feature flags i zwiększ stabilność swojej aplikacji.
Przeczytaj

Wycena projektu

Sprawdź, jak wykorzystujemy naszą wiedzę w praktyce i stwórz z nami swój projekt.

Dlaczego warto rozwijać z nami projekty?

Logo Mobile Trends Awards

Mobile Trends Awards 2017

Nominacja w kategorii
M-COMMERCE

17

opinii klientów

Clutch logo
Logo Legalni bukmacherzy

Nagroda Legalnych Bukmacherów 2019

Najlepsza aplikacja mobilna

60+

zrealizowanych projektów