Fastlane fixes working up to a full release #68
@@ -5,7 +5,7 @@ on:
 | 
			
		||||
    paths:
 | 
			
		||||
      - frontend/**
 | 
			
		||||
 | 
			
		||||
name: Build and release release apps to production track
 | 
			
		||||
name: Build and release apps to beta track
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  get-version:
 | 
			
		||||
@@ -13,6 +13,7 @@ jobs:
 | 
			
		||||
    runs-on: macos
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: https://gitea.com/actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Fetch tags from main branch
 | 
			
		||||
        # since this workflow is triggered by a pull request, we want to match the latest tag of the main branch
 | 
			
		||||
        id: version
 | 
			
		||||
@@ -20,14 +21,21 @@ jobs:
 | 
			
		||||
          git fetch origin main --tags
 | 
			
		||||
          LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
 | 
			
		||||
          # remove the 'v' prefix from the tag name
 | 
			
		||||
          echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_ENV
 | 
			
		||||
          echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_OUTPUT
 | 
			
		||||
 | 
			
		||||
      - name: Output the version that is being used
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "Building for version ${{ steps.version.outputs.BUILD_NAME }}"
 | 
			
		||||
 | 
			
		||||
    outputs:
 | 
			
		||||
      build_name: ${{ steps.version.outputs.BUILD_NAME }}
 | 
			
		||||
 | 
			
		||||
  build-android:
 | 
			
		||||
    name: Build and upload android app
 | 
			
		||||
    uses: ./.gitea/workflows/workflow_build-app-android.yaml
 | 
			
		||||
    with:
 | 
			
		||||
      build_type: beta
 | 
			
		||||
      build_name: ${{ env.BUILD_NAME }}
 | 
			
		||||
      build_name: ${{ needs.get-version.outputs.build_name }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}
 | 
			
		||||
      ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}
 | 
			
		||||
@@ -40,7 +48,7 @@ jobs:
 | 
			
		||||
    uses: ./.gitea/workflows/workflow_build-app-ios.yaml
 | 
			
		||||
    with:
 | 
			
		||||
      build_type: beta
 | 
			
		||||
      build_name: ${{ env.BUILD_NAME }}
 | 
			
		||||
      build_name: ${{ needs.get-version.outputs.build_name }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }}
 | 
			
		||||
      IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
 | 
			
		||||
@@ -48,4 +56,4 @@ jobs:
 | 
			
		||||
      IOS_MATCH_REPO_SSH_KEY_BASE64: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
 | 
			
		||||
      IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
 | 
			
		||||
      IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}
 | 
			
		||||
    needs: get-version
 | 
			
		||||
    needs: build-android # technically not needed, but this prevents the builds from running in parallel
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ on:
 | 
			
		||||
    tags:
 | 
			
		||||
      - v*
 | 
			
		||||
 | 
			
		||||
name: Build and release release apps to production track
 | 
			
		||||
name: Build and release apps to production track
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  get-version:
 | 
			
		||||
@@ -11,21 +11,28 @@ jobs:
 | 
			
		||||
    runs-on: macos
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: https://gitea.com/actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Get version from git tag
 | 
			
		||||
        id: version
 | 
			
		||||
        env: 
 | 
			
		||||
          REF_NAME: ${{ gitea.ref_name }}
 | 
			
		||||
        # remove the 'v' prefix from the tag name
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
 | 
			
		||||
          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_OUTPUT
 | 
			
		||||
 | 
			
		||||
      - name: Output the version that is being used
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "Building for version ${{ steps.version.outputs.BUILD_NAME }}"
 | 
			
		||||
 | 
			
		||||
    outputs:
 | 
			
		||||
      build_name: ${{ steps.version.outputs.BUILD_NAME }}
 | 
			
		||||
 | 
			
		||||
  build-android:
 | 
			
		||||
    name: Build and upload android app
 | 
			
		||||
    uses: ./.gitea/workflows/workflow_build-app-android.yaml
 | 
			
		||||
    with:
 | 
			
		||||
      build_type: release
 | 
			
		||||
      build_name: ${{ env.BUILD_NAME }}
 | 
			
		||||
      build_name: ${{ needs.get-version.outputs.build_name }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}
 | 
			
		||||
      ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}
 | 
			
		||||
@@ -38,12 +45,12 @@ jobs:
 | 
			
		||||
    uses: ./.gitea/workflows/workflow_build-app-ios.yaml
 | 
			
		||||
    with:
 | 
			
		||||
      build_type: release
 | 
			
		||||
      build_name: ${{ env.BUILD_NAME }}
 | 
			
		||||
      build_name: ${{ needs.get-version.outputs.build_name }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }}
 | 
			
		||||
      IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
 | 
			
		||||
      IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}
 | 
			
		||||
      IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
 | 
			
		||||
      IOS_MATCH_REPO_SSH_KEY_BASE64: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
 | 
			
		||||
      IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
 | 
			
		||||
      IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}
 | 
			
		||||
    needs: get-version
 | 
			
		||||
    needs: build-android # technically not needed, but this prevents the builds from running in parallel
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ defaults:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: macos
 | 
			
		||||
    runs-on: macos-14
 | 
			
		||||
    env:
 | 
			
		||||
      # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
 | 
			
		||||
      BUNDLE_GEMFILE: ${{ gitea.workspace }}/frontend/android/Gemfile
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,7 @@ defaults:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: macos
 | 
			
		||||
    runs-on: macos-14
 | 
			
		||||
    env:
 | 
			
		||||
      # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
 | 
			
		||||
      BUNDLE_GEMFILE: ${{ gitea.workspace }}/frontend/ios/Gemfile
 | 
			
		||||
@@ -53,9 +53,13 @@ jobs:
 | 
			
		||||
          ruby-version: 3.3
 | 
			
		||||
          bundler-cache: true # runs 'bundle install' and caches installed gems automatically
 | 
			
		||||
 | 
			
		||||
      - uses: GuillaumeFalourd/setup-rsync@v1.2
 | 
			
		||||
        # rsync is required by the google maps ios tools
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies and clean up
 | 
			
		||||
        run: |
 | 
			
		||||
          flutter pub get
 | 
			
		||||
          flutter precache --ios
 | 
			
		||||
          bundle exec pod install --allow-root
 | 
			
		||||
          flutter clean
 | 
			
		||||
          bundle exec pod cache clean --all --allow-root
 | 
			
		||||
@@ -69,6 +73,11 @@ jobs:
 | 
			
		||||
        env:
 | 
			
		||||
          MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
 | 
			
		||||
 | 
			
		||||
      - name: Replace API Key from secret
 | 
			
		||||
        # on a macOS runner, sed requires a replacement suffix after the -i flag
 | 
			
		||||
        run: |
 | 
			
		||||
          sed -i '' -e "s/IOS_GOOGLE_MAPS_API_KEY/${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}/g" Runner/AppDelegate.swift
 | 
			
		||||
 | 
			
		||||
      - name: Run fastlane lane
 | 
			
		||||
        run: bundle exec fastlane deploy_${{ inputs.build_type }}
 | 
			
		||||
        env:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags:
 | 
			
		||||
      - 'v*'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: macos-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Set up ruby env
 | 
			
		||||
        uses: ruby/setup-ruby@v1
 | 
			
		||||
        with:
 | 
			
		||||
          ruby-version: 3.2.1
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Setup java for android build
 | 
			
		||||
        uses: actions/setup-java@v4
 | 
			
		||||
        with:
 | 
			
		||||
          java-version: '17'
 | 
			
		||||
          distribution: 'zulu'
 | 
			
		||||
 | 
			
		||||
      - name: Setup android SDK
 | 
			
		||||
        uses: android-actions/setup-android@v3
 | 
			
		||||
      
 | 
			
		||||
      - name: Install Flutter
 | 
			
		||||
        uses: subosito/flutter-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          channel: stable
 | 
			
		||||
          flutter-version: 3.22.0
 | 
			
		||||
          cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Infer version number from git tag
 | 
			
		||||
        id: version
 | 
			
		||||
        env: 
 | 
			
		||||
          REF_NAME: ${{ github.ref_name }}
 | 
			
		||||
        run:
 | 
			
		||||
          # remove the 'v' prefix from the tag name
 | 
			
		||||
          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
      - name: Put selected secrets into files
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}" | base64 -d > secrets.properties
 | 
			
		||||
          echo "${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}" | base64 -d > google-key.json
 | 
			
		||||
          echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore
 | 
			
		||||
        working-directory: android
 | 
			
		||||
 | 
			
		||||
      - name: Install fastlane
 | 
			
		||||
        run: bundle install
 | 
			
		||||
        working-directory: android
 | 
			
		||||
 | 
			
		||||
      - name: Run fastlane lane
 | 
			
		||||
        run: bundle exec fastlane deploy_release
 | 
			
		||||
        working-directory: android
 | 
			
		||||
        env:
 | 
			
		||||
          BUILD_NUMBER: ${{ github.run_number }}
 | 
			
		||||
          # BUILD_NAME is implicitly available
 | 
			
		||||
          GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }}
 | 
			
		||||
							
								
								
									
										64
									
								
								frontend/.github/workflows/build_app_ios.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -1,64 +0,0 @@
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags:
 | 
			
		||||
      - 'v*'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: macos-latest
 | 
			
		||||
    env:
 | 
			
		||||
      # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
 | 
			
		||||
      BUNDLE_GEMFILE: ${{ github.workspace }}/ios/Gemfile
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Set up ruby env
 | 
			
		||||
        uses: ruby/setup-ruby@v1
 | 
			
		||||
        with:
 | 
			
		||||
          ruby-version: 3.3
 | 
			
		||||
          bundler-cache: true # runs 'bundle install' and caches installed gems automatically
 | 
			
		||||
 | 
			
		||||
      - name: Install Flutter
 | 
			
		||||
        uses: subosito/flutter-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          channel: stable
 | 
			
		||||
          flutter-version: 3.22.0
 | 
			
		||||
          cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Infer version number from git tag
 | 
			
		||||
        id: version
 | 
			
		||||
        env: 
 | 
			
		||||
          REF_NAME: ${{ github.ref_name }}
 | 
			
		||||
        run:
 | 
			
		||||
          # remove the 'v' prefix from the tag name
 | 
			
		||||
          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
      - name: Setup SSH key for match git repo
 | 
			
		||||
        # and mark the host as known
 | 
			
		||||
        run: |
 | 
			
		||||
          echo $MATCH_REPO_SSH_KEY | base64 --decode > ~/.ssh/id_rsa
 | 
			
		||||
          chmod 600 ~/.ssh/id_rsa
 | 
			
		||||
          ssh-keyscan -p 2222 git.kluster.moll.re > ~/.ssh/known_hosts
 | 
			
		||||
        env:
 | 
			
		||||
          MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies and clean up
 | 
			
		||||
        run: |
 | 
			
		||||
          flutter pub get
 | 
			
		||||
          bundle exec pod install
 | 
			
		||||
          flutter clean
 | 
			
		||||
          bundle exec pod cache clean --all
 | 
			
		||||
        working-directory: ios
 | 
			
		||||
 | 
			
		||||
      - name: Run fastlane lane
 | 
			
		||||
        run: bundle exec fastlane deploy_release --verbose
 | 
			
		||||
        working-directory: ios
 | 
			
		||||
        env:
 | 
			
		||||
          BUILD_NUMBER: ${{ github.run_number }}
 | 
			
		||||
          # BUILD_NAME is implicitly available
 | 
			
		||||
          GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }}
 | 
			
		||||
          IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }}
 | 
			
		||||
          IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
 | 
			
		||||
          IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}
 | 
			
		||||
          MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
 | 
			
		||||
          IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}
 | 
			
		||||
@@ -17,7 +17,7 @@ platform :android do
 | 
			
		||||
      )
 | 
			
		||||
    
 | 
			
		||||
    upload_to_play_store(
 | 
			
		||||
      track: 'alpha',
 | 
			
		||||
      track: 'beta',
 | 
			
		||||
      # upload aab files intstead
 | 
			
		||||
      skip_upload_apk: true,
 | 
			
		||||
      skip_upload_changelogs: true,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +0,0 @@
 | 
			
		||||
AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify <your> preferences and constraints and anyway generates a personalized itinerary just for you. 
 | 
			
		||||
 | 
			
		||||
Anyway follows these core principles:
 | 
			
		||||
- **Personalization**: Trips should be match your interests - not just the most popular destinations.
 | 
			
		||||
- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you.
 | 
			
		||||
- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
 | 
			
		||||
- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify your preferences and constraints and anyway generates a personalized itinerary just for you. 
 | 
			
		||||
 | 
			
		||||
Anyway follows these core principles:
 | 
			
		||||
- Personalization: Trips should be match your interests - not just the most popular destinations.
 | 
			
		||||
- Efficiency: Don't just walk in circles! Anyway creates the most efficient route for you.
 | 
			
		||||
- Flexibility: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
 | 
			
		||||
- Discoverability: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 3.0 MiB  | 
| 
		 Before Width: | Height: | Size: 4.1 MiB After Width: | Height: | Size: 4.1 MiB  | 
| 
		 Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB  | 
| 
		 Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB  | 
@@ -1,4 +1,4 @@
 | 
			
		||||
app_identifier("info.anydev.testing") # The bundle identifier of your app
 | 
			
		||||
app_identifier("info.anydev.anyway") # The bundle identifier of your app
 | 
			
		||||
apple_id("me@moll.re") # Your Apple Developer Portal username
 | 
			
		||||
 | 
			
		||||
itc_team_id("127439860") # App Store Connect Team ID
 | 
			
		||||
 
 | 
			
		||||
@@ -28,17 +28,6 @@ platform :ios do
 | 
			
		||||
      readonly: true,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # replace secrets by real values, the stupid way
 | 
			
		||||
    sh(
 | 
			
		||||
      "sed",
 | 
			
		||||
      "-i",
 | 
			
		||||
      "",
 | 
			
		||||
      "s/IOS_GOOGLE_MAPS_API_KEY/#{ENV["IOS_GOOGLE_MAPS_API_KEY"]}/g",
 | 
			
		||||
      "../Runner/AppDelegate.swift"
 | 
			
		||||
    )
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    sh(
 | 
			
		||||
      "flutter",
 | 
			
		||||
      "build",
 | 
			
		||||
@@ -74,15 +63,6 @@ platform :ios do
 | 
			
		||||
      readonly: true,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # replace secrets by real values, the stupid way
 | 
			
		||||
    sh(
 | 
			
		||||
      "sed",
 | 
			
		||||
      "-i",
 | 
			
		||||
      "",
 | 
			
		||||
      "s/IOS_GOOGLE_MAPS_API_KEY/#{ENV["IOS_GOOGLE_MAPS_API_KEY"]}/g",
 | 
			
		||||
      "../Runner/AppDelegate.swift"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    sh(
 | 
			
		||||
      "flutter",
 | 
			
		||||
      "build",
 | 
			
		||||
@@ -101,9 +81,9 @@ platform :ios do
 | 
			
		||||
    upload_to_app_store(
 | 
			
		||||
      overwrite_screenshots: true,
 | 
			
		||||
      metadata_path: "fastlane/metadata",
 | 
			
		||||
      screenshot_path: "fastlane/screenshots",
 | 
			
		||||
      screenshots_path: "fastlane/screenshots",
 | 
			
		||||
      precheck_include_in_app_purchases: false,
 | 
			
		||||
 | 
			
		||||
      force: true, # Skip HTMl report verification
 | 
			
		||||
      submit_for_review: true,
 | 
			
		||||
      automatic_release: true,
 | 
			
		||||
      # automatically release the app after review
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
 | 
			
		||||
2025 anydev
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify <our> preferences and constraints and anyway generates a personalized itinerary just for you. 
 | 
			
		||||
AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify your preferences and constraints and anyway generates a personalized itinerary just for you. 
 | 
			
		||||
 | 
			
		||||
Anyway follows these core principles:
 | 
			
		||||
- **Personalization**: Trips should be match your interests - not just the most popular destinations.
 | 
			
		||||
- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you.
 | 
			
		||||
- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
 | 
			
		||||
- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.
 | 
			
		||||
- Personalization: Trips should be match your interests - not just the most popular destinations.
 | 
			
		||||
- Efficiency: Don't just walk in circles! Anyway creates the most efficient route for you.
 | 
			
		||||
- Flexibility: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
 | 
			
		||||
- Discoverability: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1.6 MiB  | 
| 
		 Before Width: | Height: | Size: 2.2 MiB  | 
@@ -1 +1 @@
 | 
			
		||||
AnyWay
 | 
			
		||||
Any.Way
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
 | 
			
		||||
TRAVEL
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
 | 
			
		||||
anydev.anyway@gmail.com
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
 | 
			
		||||
Remy
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
 | 
			
		||||
Moll
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
 | 
			
		||||
+4915128785827
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								frontend/ios/fastlane/screenshots/en-US/iOS Phones  6.9-01.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 MiB  | 
| 
		 Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB  | 
| 
		 Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB  | 
| 
		 Before Width: | Height: | Size: 758 KiB After Width: | Height: | Size: 758 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 MiB  | 
| 
		 Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB  | 
| 
		 Before Width: | Height: | Size: 574 KiB After Width: | Height: | Size: 574 KiB  | 
| 
		 Before Width: | Height: | Size: 800 KiB After Width: | Height: | Size: 800 KiB  |