Git Product home page Git Product logo

travel-app-android's Introduction

Travelpayouts Travel App For Android

Russian version of the documentation you can find here.

Travelpayouts Travel App is a application using flight and hotel search engines. When your customer books a flight or hotel, we pay you a commission fee. Framework is based on leading flight search engines Aviasales, JetRadar and hotel search engine Hotellook.

Travelpayouts Travel App supports all Android devices with Android API 21 and higher.


To get your API key, track statistics and payments please sign up to Travelpayouts Travel Affiliate Network.
Learn more about earnings in Travelpayouts FAQ.
Video instruction

How to create your own Travel App for Android

Privacy Policy

Privacy Policy is REQUIRED for your app. If it is missing, your app may be removed from the Google Play at anytime.
We've included a default Privacy Policy in the template app, but you should create YOUR OWN.

You can use online services like privacypolicytemplate.net or App Privacy Policy Generator.

When you have created own Privacy Policy upload it to your website and copy the link to it.

Use this link for a Privacy Policy field in Google Play Console.

Put the Policy link to strings.xml file.

<string name="com_travelpayouts_privacy_policy" tools:ignore="MissingTranslation">Put policy link here</string>

SDK initialization

Change com_travelpayouts_marker and com_travelpayouts_api_token in strings.xml file to your marker and api token params. You can find them at Travelpayouts.com.

<string name="com_travelpayouts_marker" tools:ignore="MissingTranslation">put marker here</string>
<string name="com_travelpayouts_api_token" tools:ignore="MissingTranslation">put api token here</string>

Application id

To publish your application on Google Play you must set unique application id. All you need to do is change applicationId in app/build.gradle file.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
  compileSdkVersion versions.compileSdk
  
    defaultConfig {
        applicationId "com.example.myapp"
        
        minSdkVersion 24
        targetSdkVersion versions.targetSdk
        
        versionCode 1
        versionName "1.0"
        ...
    }
    ...
}

Application name

Change the application name in strings.xml file.

<string name="app_name" tools:ignore="MissingTranslation">Put appname here</string>

White label

com_travelpayouts_flight_engine_host is the main endpoint of Travelpayouts flight SDK. You can use https://www.travel-api.pw as your default endpoint, but we strongly recommend to change it to your WhiteLabel host. You can change com_travelpayouts_flight_engine_host in strings.xml file.

<string name="com_travelpayouts_flight_engine_host" tools:ignore="MissingTranslation">https://www.travel-api.pw</string>

Google maps initialization

Google maps is necessary for your app. To initialize Google maps you need to:

  1. Go to the Google Cloud Platform Console.
  2. From the Project drop-down menu, select or create the project for which you want to add an API key.
  3. From the Navigation menu, select APIs & Services > Credentials.
  4. On the Credentials page, click Create credentials > API key. The API key created dialog displays your newly created API key (an encrypted string).
  5. Copy your API key and click Close.
  6. Put API Key to manifestPlaceholders in app/build.gradle file.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion versions.compileSdk

    defaultConfig {
       ...
        manifestPlaceholders = [
            GOOGLE_API_KEY: "Put API key here"
        ]
        ...
    }
   ...
}

App icons creation

Best way to create the application icon is using Asset Studio tool:

  1. In the Project window, select the Android view.
  2. Right-click the res folder and select New > Image Asset.
  3. Set up foreground and background layers. IMPORTANT! Do not change icon name.
  4. Click Next > Finish.

For more information – Create app icons with Image Asset Studio

Colors customization (OPTIONAL)

To customize colors of your app change primary, primaryButton, positiveButton and primary_dark in colors.xml. This is main Travelpayouts Travel App colors

<color name="primary">#5A6D87</color>
<color name="primary_dark">#475972</color>
<color name="primaryButton">#F48C6B</color>
<color name="positiveButton">#35C772</color>

Firebase integration (OPTIONAL)

To track events and log crashes you need to add Firebase integration:

  1. Create a new or open existing Firebase project in the Firebase console
  2. Add the new Android applicaton (Add app -> Android)
  3. Download google-services.json and place it into the app folder
  4. Uncomment //apply plugin: 'com.google.gms.google-services' and //apply plugin: 'com.google.firebase.crashlytics' in app/build.gradle
  5. Uncomment //classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0 and //classpath 'com.google.gms:google-services:4.3.3' in build.gradle
  6. Go to the console Crashlytics section
  7. Click Set up Crashlytics
  8. Select "No, this app does not have any version of the Crashlytics SDK installed" and click Next
  9. Run your app to receive analytics

Tabs customization (OPTIONAL)

If you want to add a rental cars tab go to the App class, uncomment tab and add your program affiliate link.

//            Tab.RentalCars("Cars program link"),

Important reminder: use the link generator to make click-through and bookings fall into the statistics of the affiliate program.

How to change About text

You can change the text in the About tab. For this you should add to the strings.xml next code:

<string name="about_information_text">Custom about text</string>

If you need translations for this text, you should do it with standard Android tools (create an alternative folder with resources, for example values-ge and put the translation there).

If you are migrating from 1.1.6:

Add the application class with overridden config and use it in AndroidManifest.xml.

Example:

Our sample package is com.travelpayouts.travel.app

To migrate we should add /app/src/main/java/com/travelpayouts/travel/app/App.kt

package com.travelpayouts.travel.app

import com.travelpayouts.travel.sdk.Config
import com.travelpayouts.travel.sdk.Config.Tab
import com.travelpayouts.travel.sdk.TravelApp


class App : TravelApp() {

    override val config: Config = Config(
        tabs = setOf(
            Tab.Flights,
            Tab.Hotels,
//            Tab.RentalCars("Cars program link"),
            Tab.AppInfo
        )
    )

}

In AndroidManifest.xml replace:

           android:name="com.travelpayouts.travel.sdk.TravelApp"

with:

           android:name=".App"

The tabs order depends on their position in the code:

         tabs = setOf (
             Tab.Flights,
             Tab.RentalCars ("Cars program link"),
             Tab.Hotels,
             Tab.AppInfo
         )

In this example, the first will be the Flights tab, then the RentalCars, then the Hotels and at the end the application information tab.

Template app screenshots

Flights

Hotels

Car rent

travel-app-android's People

Contributors

be1ski avatar b1uebyte avatar kamerok avatar travelpayouts-github avatar johnkil avatar engexp avatar m4xp1 avatar vshidlovskiy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.