Building, bundling and CI - leotm/react-native-template-new-architecture GitHub Wiki
History
- 1970s: Yacc (Yet Another Compiler-Compiler) (Unix) - LALR parser generator
- 1976: Make (Unix) - Makefiles
- 1985: Bison (GNU) - general-purpose language parser generator (CFG -> LR/GLR)
- 1987: Flex (fast lexical analyzer generator) - tokenise input
- 1995: Ruby - high-lvl general-purpose language
- 1999: (Apache) Tomccat - Java HTTP server
- 2000: CMake - generate another system's build files (used w Make/Ninja/AndroidStudio/Xcode/MSVisualStudio/etc)
- Jul00: (Apache) Ant - Java Make replacement (needs Java plat), XML
- Oct03: Xcode (Apple) - Mac IDE for i/iPad/watch/tv/visionOS
- Mar04: RubyGems - Ruby pkg man
- Jul04: (Apache) Maven - Java + C#/Ruby/Scala (lol)
- Apr08: Gradle - Groovy/Kotlin DSL (bundles RN w Metro) (top-down)
- 2009: Node.js - run JS (V8) outside web (Win/Linux/Mac/etc)
- 2011: (chromium/gyp, Google) - Generate Your Projects (native IDE project files to build Chrome)
- Sep11: CocoaPods - Obj-C/Swift dep man (inspired by RubyGems) and auto Xcode integ
- 2012: Ninja (Google) - Make replacement, speed up Chrome, parts of Android, LLVM, other
- May14: sbt - simple build tool - build Java/Scala/Kotlin projects
- Mar15: Bazel (Blaze) - Starlark (Python) rules/macros - Java/C/C++/Go/Python/Objective-C/Bourne - Android/iOS - (bottom-up)
- 2016: GN (Google) - generate Ninja builds (replaced GYP)
- Feb16: Please - not Maven, pip, or go build - not make - not Bazel, Buck or Pants - no Windows
- Apr18: Metro (Meta) - RN JS bundler (customise w rnx-kit)
- Jun18: Pants - Python/Go/Java/Scala/Shell/Docker - inspired by Blaze - JS help needed (contribute after CLI or earlier)
- Jun20: nodejs/gyp-next - forked GYP for Node.js projects
- Nov20: ESBuild - extremely fast JS/CSS bundler/minifier
- Jan21: Buck (Meta) - Java/Android/iOS/Other - inspired by Bazel
- Mar21: Re.Pack (Haul, Webpack-based) - RN builder
- May21?: nodejs/node-gyp - build Node.js native addons
- 🚧: swcpack (Rust-based) - bundle JS/TS
- 🚧: Buck2
Android
- IDE: Android Studio [Stable / Preview - RC/Canary]
- Build Tool / Bundler (CLI): Gradle Wrapper
./gradlew
iOS
- IDE: Xcode [stable / beta]
- Build Tool / Bundler (CLI):
xcodebuild
Automate
CI workflow (yml)
- Examples
- GitHub Actions (yml)
- Xcode - Build and Analyze
- iOS (build and test on sim)
- Java with Gradle (wrapper)
- Android CI (Gradle)
- fastlane
- Super Linter
- etc
- BitRise (yml)
- CocoaPods
- Cert/Profile install
- Xcode Archive/Export
- Android Build
- fastlane
- etc
- CircleCI
- AppCenter
- CodePush only
- Unreliable, Detox E2E not pos
- Host runner