Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DroidKaigi2020 - Scadeを使って「Swift」で始めるAndroidアプリ開発

h.crane
February 21, 2020

DroidKaigi2020 - Scadeを使って「Swift」で始めるAndroidアプリ開発

Many cross-platform development tools have appeared.

Xamarin, React Native, and Flutter are currently known, but in recent years Kotlin / Native has become widely known.

Did you know that Scade was developed since 2017?

In this session, we will introduce “Scade” that can be used for cross-platform development using “Swift”.

The draft table of contents considers the following:
-Comparison with existing tools
-Advantages of development using Swift
-What you can / can't do with Scade

..etc

2020/2/20-21 DroidKaigi2020
「Scadeを使って「Swift」で始めるAndroidアプリ開発」

h.crane

February 21, 2020
Tweet

More Decks by h.crane

Other Decks in Technology

Transcript

  1. 〈Company〉 - every, inc. / DELISH KITCHEN 〈Role〉 - iOS

    Developer 〈Account〉 - Twitter: @hcrane14 - Qiita: H_Crane - note: hcrane About me
  2. 1. Scadeを知る 1.1. Scadeとは 1.1.1. 主な機能 1.1.2. Founderについて 1.1.3. Scadeの歴史

    1.2. なぜAndroidでSwiftが動くのか 1.2.1. コンパイラ 1.2.2. Scadeでのコンパイル 2. Scadeの実装 2.1. GUIベース 2.1.1. Autolayout 2.1.2. レイアウトの裏側 2.1.3. UIのパーツ 2.2. コードベース 2.2.1. Layout 2.3. Scadeを使ったアプリ 2.3.1. DroidKaigi2020のコピーアプリ Agenda 3. Scadeのライフサイクル 3.1. 起動シーケンス 3.2. 画面のライフサイクル 4. Scadeの機能 4.1. Swift 4.1.1. Foundation API 4.1.2. UIKit 4.1.3. Android Component 4.1.4. Data Binding 4.2. Simulator 4.2.1. Scade Simulator 4.3. Library 4.3.1. Swift Package Manager 4.3.2. Multiplatform Library 5. その他 5.1. 補足事項 5.1.1. Scadeで出来ること 5.1.2. Scadeで出来ないこと 5.1.3. Scadeの不安要素 5.2. 参考文献
  3. BETA3 5 2018 2019 11 7 2020 4 8 5

    6 12 5 2 6 7 8 10 - Swift3.1 - WebView - Camera - Page Container - SideBar - Swift4 - Swift Foundation 80% - Code UI - Animation API BETA4 BETA5 BETA6a BETA6b BETA6c v0.9.8.1 v0.9.9.0 v0.9.8.2 v0.9.10.0 v0.9.13.0 v0.9.14.0 v0.9.15.0 v0.9.15.1 v0.9.17.0 - Swift4.1 - Swift Foundation 100% - Unified Build System - Swift Package Manager - Xcode Autocomplete - Logging API - Server Side Swift - Xcode10 - Foreground - Background Change Log of Scade - Swift4.2.1 - Video Capture - Deeplink - Autolayout - Xcode10.2.1 - Binding - Swift5 - Dialog - Android 64bit - Multiple Build - Xcode11 1 - Animation - Keyboard Notificaiton v0.9.18.0 v0.9.16.0
  4. iOS Scade 起動
 表示
 表示
 AppDelegate (root view) 起動
 表示


    SCDApplication (root view) Android Application 起動

  5. iOS Scade 起動
 表示
 表示
 Service AppDelegate (root view) -

    URL Scheme - Push etc. - Active - Terminate - Background - Foreground 起動
 表示
 SCDApplication (root view) - URL Scheme - Push etc. - Active - Terminate - Background - Foreground Android Application 起動
 - URL Scheme - Push etc. - Active - Terminate - Background - Foreground Activity LifecycleCallbacks Process LifecycleOwner 受取
 受取
 受取
 受取
 受取
 受取

  6. Android / Activity iOS / UIViewController Scade / SCDLatticePageAdapter load(_:)

    activate(_:) show(_:data:) show(_:) onEnter onExit ※ nearly equal
  7. show(_:) show(_:) Android / Activity iOS / UIViewController Scade /

    SCDLatticePageAdapter onRestart load(_:) activate(_:) show(_:data:) onEnter onExit SCDWidgets EnterEventHandler SCDWidgets ExitEventHandler
  8. - Numbers, Data, and Basic Values - Strings and Text

    - Collections - Dates and Times - Units and Measurement - Data Formatting - Filters and Sorting
  9. - カメラ制御 - 地図制御 - Deeplink遷移 - WebView表示 - カスタムフォント表示

    - SVGアニメーション - フォアグラウンド・バックグラウンドのハンドリング - タップ・スワイプ のジェスチャーハンドリング - JsonからAPIのコード生成ジェネレータ and so on...
  10. - 動画表示 - Push通知制御 - Bluetooth制御 - 遷移アニメーションのカスタマイズ - 細かいライフサイクルのハンドリング

    - テストコードの実行 - タブレット対応(固有のViewを出せない) - Java / Kotlinの呼び出し - Cocoapods / Carthage の使用 and so on...
  11. - 一部ビルドできないAndroid端末がある - 可変デザインだとAutolayoutがAndroid崩れることがある - Queue管理周りでAndroidのみクラッシュすることがある - 大量の画像はAndroidでクラッシュすることがある → 内部的にViewを使い回す機構になってない模様

    - 一部のネイティブAPIが非対応 - eclipseベースなのでエディタが重い - アニメーション周りのサポートがまだまだ弱い - 内部エラーのクラッシュは何も対処できない (※ Scadeに限らずマルチプラットフォームの問題 )
  12. iOS Multiplatform History - Apportable Converts iOS Apps For Android

    - objective-c · GitHub Topics - Fire: Your place to cook up great apps - RemObjects Silver: The Swift Language for .NET and Java/Android - “Silver” brings Apple’s Swift language to the .NET and Java worlds - Swiftで無料iOS/Android/.NET開発ができる新 IDE Fireと新SwiftコンパイラSilver Android Compiler - Android Native Development Kit - 概念 | Android NDK - Fig. 3. Major development tools of the Android platform and the... - インテル® Atom™ プロセッサー・ベースのプラットフォームにおける Android* アプリケーションの開発と最適化 - AndroidもJVMで動いてると思ってた。。。 - dexファイルってなんだっけ - R8/ProGuard 徹底比較 - PreEmptive Blog Swift Compiler - Swift コンパイラのアーキテクチャ - コマンドラインから直接 Swiftコンパイラを使ってビルドする方法 Flutter Compiler - Flutter Compilation Process - DEV Community ‍‍ - Google Flutter: Lessons Learned Writing a Flutter App - What's Revolutionary about Flutter - By - Flutter - How does it work behind the scenes?
  13. iOS Lifecycle - UIViewControllerのライフサイクル - AppDelegate Android Lifecycle - Activity

    Lifecycle - (Android) アプリのbackground/foregroundを検知する - アプリのバックグラウンド⇆フォアグラウンドを検知する。 ProcessLifecycleOwnerの導入 - iOS と Android で画面表示時のコールバックを比較する - Androidエンジニアのための iOSのUIViewControllerのライフサイクルと AndroidのActivityのライフサイクル比較 Scade Infomation - SCADE.io - SCADE Guidline - Swift Foundation 4.0 for Android 18 1 Cross Platform App Development with Apple Swift - Use conditional compilation - Boosting Apple Swift developer productivity with a unified build system for cross platform iOS and… - Develop CryptoSwift applications on Android and iOS - Swift Package Manager Guide - Extending your Swift on Android project with C libraries