Giter Site home page Giter Site logo

arnaudlauriou / ionic-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from geteduroam/ionic-app

0.0 0.0 0.0 8.6 MB

iOS and Android app for geteduroam

Dockerfile 0.69% Java 22.19% Swift 13.43% Ruby 0.64% Objective-C 0.50% JavaScript 0.40% TypeScript 48.23% HTML 6.40% Makefile 0.30% Shell 1.04% SCSS 6.18%

ionic-app's Introduction

GetEduroam standard-readme compliant

HOW TO BUILD

Android

There are 2 options to build the app in Android: one automatic and another manual.

  • Option 1) Automatic APK generation for Android

    • Navigate to the folder called tools

    • Make sure that both docker and docker-compose are available in the machine.

      ./install-docker.sh
      
      • Generate the APK
      • Option 1: using make command of Makefile:
      make generate-apk
      
      ./generate-apk.sh
      
    • The APK is generated and signed with the key release-key.jks

    • The new apk will be available in the folder apk inside tools

  • Option 2) Manual Application generation

    • Requirements
      • Java
      • Node.js
      • ionic
      • capacitor
    • Navigate to src folder
      • Install Dependencies and build (nodeJS dependencies)
      npm i
      npm run build
      
      • Android
        • Android specific requirements
          • Android-SDK with build-tools. $ANDROID_HOME might be required
        • Create android folder and config gradle
      npx cap add android
      
      • Synchronize the android folder
      npx cap sync android
      
      • Access the new generated android folder
      cd android
      
      • Create APK
      ./gradlew assembleDebug
      
      • Access the folder in which the APK is available
      cd app/build/outputs/apk/debug/
      
      • Align APK
      zipalign -v -p 4 app-debug.apk app-debug-aligned.apk
      
      • Sign APK
      apksigner sign --ks /release-key.jks --ks-pass pass:KEY_PASSWORD --key-pass pass:KEY_PASSWORD --out geteduroam.apk app-debug-aligned.apk
      

iOS

To create the iOS binary, there is only a way (manual) because it couldn't be dockerized.

  • Binary creation
    • Requirements
      • XCode (App Store, or beta if on beta MacOS)
      • Commandline tools from XCode (sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer)
      • Node.js (LTS from https://nodejs.org/en/)
      • CocoaPods (sudo gem install cocoapods)
    • Navigate to src folder
      • Install Dependencies and build (nodeJS dependencies)
      npm i
      npm run build
      
    • iOS specific requirements:
      • Xcode
      • CocoaPods
    • Building the capacitor app:
      npx cap add ios -> Only if ios folder doesn't exist yet, creates it
      npx cap sync ios -> Synchronyzes ios folder
      npx cap open ios -> Opens xCode
      
    • Installing dependencies with CocoaPods: Go to the folder src/ios/App, throw the command:
      pod install -> Installs dependencies with CocoaPods.
      
    • To fix Bounce on iOS (this step shoulnd't be needed but sometimes the Bounce.m is removed so it's needed). Important: If Bounce.m exists, skip this step:
      • In the folder Pods/, create a "New File", select "Objective-C File", select Next.
      • Include the name to the file and select Next.
      • Select Target Support Files: Capacitor, Capacitor Cordova, CordovaPlugins and Pods-App
      • Select Create and include:
      #import <Foundation/Foundation.h>
      
      #import <UIKit/UIKit.h>
      
      @implementation UIScrollView (NoBounce)
      
      - (void)didMoveToWindow {
      
          [super didMoveToWindow];
      
          self.bounces = NO;
      }
      
      @end
      

ionic-app's People

Contributors

carlosfj avatar cardeniosa avatar jornane avatar pauldekkers avatar amachadogarcia avatar jollaemergya avatar cagenaoemergya avatar icasadom avatar julioolla avatar dependabot[bot] 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.