turbo-native-initializer 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +3 -4
  4. data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/native/NumbersFragment.kt.tt +1 -1
  5. data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebFragment.kt.tt +4 -0
  6. data/lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_warning.xml +7 -0
  7. data/lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/error_web.xml +39 -0
  8. data/lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/values/colors.xml +2 -1
  9. data/lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/values/themes.xml.tt +3 -1
  10. data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/native/NumbersFragment.kt.tt +1 -1
  11. data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebFragment.kt.tt +5 -1
  12. data/lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_warning.xml +7 -0
  13. data/lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/error_web.xml +39 -0
  14. data/lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/values/colors.xml +2 -1
  15. data/lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/values/themes.xml.tt +3 -1
  16. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboNavigationController.swift +10 -13
  17. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/ViewController.swift +1 -1
  18. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/SceneDelegate.swift.tt +0 -2
  19. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AccentColor.colorset/Contents.json +27 -0
  20. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Base.lproj/Main.storyboard.tt +1 -16
  21. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboNavigationController.swift +10 -13
  22. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/ViewController.swift +1 -1
  23. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/SceneDelegate.swift.tt +1 -3
  24. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AccentColor.colorset/Contents.json +27 -0
  25. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Base.lproj/Main.storyboard +5 -22
  26. data/lib/turbo_native_initializer/version.rb +1 -1
  27. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87f651e0de673db040c8ed9f369d404b8f08946654c721329d07bfd9cbbc0149
4
- data.tar.gz: ec47793c2bf2370f5cd4390bcf45a8ef14bad81ff70f0f3c4ba6cb1d3bb8c980
3
+ metadata.gz: b53ab2cde5fe6c5047f4cc6cfa2c8a21e217c2b226a245ba117cc110019b80ec
4
+ data.tar.gz: 7b510f82816f0ed55f4e41fc272715f14f2cc25eb44577cf9db36d0c77056504
5
5
  SHA512:
6
- metadata.gz: 40079d2dc7c716940cf72a536304801180f62c509a8d64e6bf7bcdd4cf4f5179f52b1e2213f57ac7e9fb4e1865c02a45f8ba8e123813fbff92e3f541090909a8
7
- data.tar.gz: 0bebf193304c04ed0ddaa53340fb4d0c9f4d46209471f18f883a9e0df83ec8038b2a16544372d2b704d421119519552b01c0641cd0f82181615287db906724e0
6
+ metadata.gz: e1360efb27d8f42574fab4dcb862367a8d236f4f4c9ab9ffb452024d8a9abc8d97f99a6a5b8813e5124056828bdfed21ce9140868ac1ecb41465e78c7346a949
7
+ data.tar.gz: 62c9cfa365fcdff7053d0c7b09c148fd2d6b098113f7655801d01ee8ef39d3df4a94613fc4150ad9f875905b250a32d9770e4c205678b7b5229e19d8633e4e7c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.0.5] - 2023-09-10
4
+
5
+ - Added android custom error screen
6
+
7
+ ## [0.0.4] - 2023-09-09
8
+
9
+ - Added accent color (iOS)
10
+ - Added basic theme colors (Android)
11
+ - Fallback invalid "view-controller" navigations to web (iOS)
12
+ - Fix iOS modal navigation failing when not fullscreen
13
+
3
14
  ## [0.0.3] - 2023-09-08
4
15
 
5
16
  - Add a Swift UI native screen
data/README.md CHANGED
@@ -5,12 +5,11 @@ A turbo native project generator for iOS and Android.
5
5
  ## Differences when compared to the demos
6
6
 
7
7
  - Added SwiftUI error screen. (iOS)
8
- - Added SwiftUI numbers screen. (iOS)
9
- - Added Jetpack Compose numbers screen. (Android)
10
- - Added UIAlertController to handle `turbo-native-confirm`. (iOS)
8
+ - Added SwiftUI numbers example screen. (iOS)
9
+ - Added Jetpack Compose numbers example screen. (Android)
10
+ - Added UIAlertController to handle `data-turbo-confirm`. (iOS)
11
11
  - Added presentations `clear-all`, `replace-all`, `replace`, `pop`, `refresh`, and `none`. (iOS)
12
12
  - Added visitable property in order to avoid visits. (iOS)
13
- - Added full screen option to modals. (iOS/Android)
14
13
  - Added support for tab navigation. (iOS/Android)
15
14
 
16
15
  ## Installation
@@ -27,7 +27,7 @@ fun NumbersList() {
27
27
 
28
28
  LazyColumn {
29
29
  items(numbers.count()) { index ->
30
- ListItem(headlineContent = { Text("Row number ${index + 1}") })
30
+ ListItem(headlineContent = { Text("Row ${index + 1}") })
31
31
  Divider()
32
32
  }
33
33
  }
@@ -15,4 +15,8 @@ open class WebFragment : TurboWebFragment(), NavDestination {
15
15
  else -> super.onVisitErrorReceived(location, errorCode)
16
16
  }
17
17
  }
18
+
19
+ override fun createErrorView(statusCode: Int): View {
20
+ return layoutInflater.inflate(R.layout.error_web, null)
21
+ }
18
22
  }
@@ -0,0 +1,7 @@
1
+ <vector android:height="24dp" android:tint="@color/color_brand"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M12,5.99L19.53,19H4.47L12,5.99M12,2L1,21h22L12,2L12,2z"/>
5
+ <path android:fillColor="@android:color/white" android:pathData="M13,16l-2,0l0,2l2,0z"/>
6
+ <path android:fillColor="@android:color/white" android:pathData="M13,10l-2,0l0,5l2,0z"/>
7
+ </vector>
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:layout_width="match_parent"
6
+ android:layout_height="match_parent"
7
+ android:background="?android:colorBackground">
8
+
9
+ <ImageView
10
+ android:id="@+id/imageView"
11
+ android:layout_width="match_parent"
12
+ android:layout_height="50dp"
13
+ android:layout_marginBottom="10dp"
14
+ app:layout_constraintBottom_toTopOf="@+id/error_message"
15
+ app:srcCompat="@drawable/ic_warning" />
16
+
17
+ <com.google.android.material.textview.MaterialTextView
18
+ android:id="@+id/error_message"
19
+ style="?textAppearanceDisplaySmall"
20
+ android:layout_width="match_parent"
21
+ android:layout_height="wrap_content"
22
+ android:gravity="center_horizontal"
23
+ android:text="Error loading page"
24
+ app:layout_constraintBottom_toBottomOf="parent"
25
+ app:layout_constraintTop_toTopOf="parent"
26
+ app:layout_constraintVertical_bias=".45"
27
+ tools:layout_editor_absoluteX="24dp" />
28
+
29
+ <com.google.android.material.textview.MaterialTextView
30
+ style="?textAppearanceTitleMedium"
31
+ android:layout_width="match_parent"
32
+ android:layout_height="wrap_content"
33
+ android:layout_marginTop="10dp"
34
+ android:gravity="center_horizontal"
35
+ android:text="Pull-to-refresh to try again"
36
+ app:layout_constraintTop_toBottomOf="@id/error_message"
37
+ tools:layout_editor_absoluteX="24dp" />
38
+
39
+ </androidx.constraintlayout.widget.ConstraintLayout>
@@ -1,5 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <resources>
3
+ <color name="color_brand">#5cd8e5</color>
3
4
  <color name="black">#FF000000</color>
4
5
  <color name="white">#FFFFFFFF</color>
5
- </resources>
6
+ </resources>
@@ -1,5 +1,7 @@
1
1
  <resources xmlns:tools="http://schemas.android.com/tools">
2
2
  <style name="Theme.<%= name %>" parent="Theme.Material3.DayNight.NoActionBar">
3
- <!-- Customize your theme here. -->
3
+ <item name="colorPrimary">@color/color_brand</item>
4
+ <item name="colorPrimaryDark">@color/color_brand</item>
5
+ <item name="colorAccent">@color/color_brand</item>
4
6
  </style>
5
7
  </resources>
@@ -27,7 +27,7 @@ fun NumbersList() {
27
27
 
28
28
  LazyColumn {
29
29
  items(numbers.count()) { index ->
30
- ListItem(headlineContent = { Text("Row number ${index + 1}") })
30
+ ListItem(headlineContent = { Text("Row ${index + 1}") })
31
31
  Divider()
32
32
  }
33
33
  }
@@ -5,4 +5,8 @@ import dev.hotwire.turbo.fragments.TurboWebFragment
5
5
  import dev.hotwire.turbo.nav.TurboNavGraphDestination
6
6
 
7
7
  @TurboNavGraphDestination(uri = "turbo://fragment/web")
8
- open class WebFragment : TurboWebFragment(), NavDestination
8
+ open class WebFragment : TurboWebFragment(), NavDestination {
9
+ override fun createErrorView(statusCode: Int): View {
10
+ return layoutInflater.inflate(R.layout.error_web, null)
11
+ }
12
+ }
@@ -0,0 +1,7 @@
1
+ <vector android:height="24dp" android:tint="@color/color_brand"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M12,5.99L19.53,19H4.47L12,5.99M12,2L1,21h22L12,2L12,2z"/>
5
+ <path android:fillColor="@android:color/white" android:pathData="M13,16l-2,0l0,2l2,0z"/>
6
+ <path android:fillColor="@android:color/white" android:pathData="M13,10l-2,0l0,5l2,0z"/>
7
+ </vector>
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:layout_width="match_parent"
6
+ android:layout_height="match_parent"
7
+ android:background="?android:colorBackground">
8
+
9
+ <ImageView
10
+ android:id="@+id/imageView"
11
+ android:layout_width="match_parent"
12
+ android:layout_height="50dp"
13
+ android:layout_marginBottom="10dp"
14
+ app:layout_constraintBottom_toTopOf="@+id/error_message"
15
+ app:srcCompat="@drawable/ic_warning" />
16
+
17
+ <com.google.android.material.textview.MaterialTextView
18
+ android:id="@+id/error_message"
19
+ style="?textAppearanceDisplaySmall"
20
+ android:layout_width="match_parent"
21
+ android:layout_height="wrap_content"
22
+ android:gravity="center_horizontal"
23
+ android:text="Error loading page"
24
+ app:layout_constraintBottom_toBottomOf="parent"
25
+ app:layout_constraintTop_toTopOf="parent"
26
+ app:layout_constraintVertical_bias=".45"
27
+ tools:layout_editor_absoluteX="24dp" />
28
+
29
+ <com.google.android.material.textview.MaterialTextView
30
+ style="?textAppearanceTitleMedium"
31
+ android:layout_width="match_parent"
32
+ android:layout_height="wrap_content"
33
+ android:layout_marginTop="10dp"
34
+ android:gravity="center_horizontal"
35
+ android:text="Pull-to-refresh to try again"
36
+ app:layout_constraintTop_toBottomOf="@id/error_message"
37
+ tools:layout_editor_absoluteX="24dp" />
38
+
39
+ </androidx.constraintlayout.widget.ConstraintLayout>
@@ -1,5 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <resources>
3
+ <color name="color_brand">#5cd8e5</color>
3
4
  <color name="black">#FF000000</color>
4
5
  <color name="white">#FFFFFFFF</color>
5
- </resources>
6
+ </resources>
@@ -1,5 +1,7 @@
1
1
  <resources xmlns:tools="http://schemas.android.com/tools">
2
2
  <style name="Theme.<%= name %>" parent="Theme.Material3.DayNight.NoActionBar">
3
- <!-- Customize your theme here. -->
3
+ <item name="colorPrimary">@color/color_brand</item>
4
+ <item name="colorPrimaryDark">@color/color_brand</item>
5
+ <item name="colorAccent">@color/color_brand</item>
4
6
  </style>
5
7
  </resources>
@@ -26,9 +26,9 @@ class TurboNavigationController : UINavigationController {
26
26
  let viewController = makeViewController(for: url, properties: properties)
27
27
  navigate(to: viewController, action: options.action, properties: properties)
28
28
 
29
- // - Initiate the visit with Turbo
29
+ // Initiate the visit with Turbo
30
30
  if isVisitable(properties) {
31
- visit(viewController: viewController, with: options)
31
+ visit(viewController: viewController, with: options, modal: isModal(properties))
32
32
  }
33
33
  }
34
34
  }
@@ -77,33 +77,30 @@ extension TurboNavigationController {
77
77
  case "numbers":
78
78
  return NumbersViewController()
79
79
  default:
80
- assertionFailure("Invalid view controller, defaulting to WebView")
80
+ return ViewController(url: url)
81
81
  }
82
+ } else {
83
+ return ViewController(url: url)
82
84
  }
83
-
84
- return ViewController(url: url)
85
85
  }
86
86
 
87
- private func navigate(to viewController: UIViewController, action: VisitAction, properties: PathProperties = [:], animated: Bool = true) {
88
- let modalNavController = UINavigationController(rootViewController: viewController)
89
- modalNavController.modalPresentationStyle = .fullScreen
90
-
87
+ private func navigate(to viewController: UIViewController, action: VisitAction, properties: PathProperties = [:]) {
91
88
  if isModal(properties) {
92
- present(modalNavController, animated: animated)
93
- } else if isClearAll(properties) {
94
- popToRootViewController(animated: true)
89
+ present(UINavigationController(rootViewController: viewController), animated: true)
95
90
  } else if isPop(properties) {
96
91
  popViewController(animated: true)
97
92
  } else if isRefresh(properties) {
98
93
  session.reload()
99
94
  } else if isNone(properties) {
100
95
  // Will result in no navigation action being taken
96
+ } else if isClearAll(properties) {
97
+ popToRootViewController(animated: true)
101
98
  } else if isReplaceAll(properties) {
102
99
  setViewControllers([viewController], animated: false)
103
100
  } else if isReplace(properties) || action == .replace {
104
101
  setViewControllers(Array(viewControllers.dropLast()) + [viewController], animated: false)
105
102
  } else {
106
- pushViewController(viewController, animated: animated)
103
+ pushViewController(viewController, animated: true)
107
104
  }
108
105
  }
109
106
 
@@ -10,7 +10,7 @@ final class ViewController: VisitableViewController, ErrorPresenter {
10
10
  navigationItem.backButtonDisplayMode = .minimal
11
11
 
12
12
  if presentingViewController != nil {
13
- navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(dismissModal))
13
+ navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(dismissModal))
14
14
  }
15
15
  }
16
16
 
@@ -15,8 +15,6 @@ final class SceneDelegate: UIResponder {
15
15
  private func configureRootViewController() {
16
16
  guard let window = window else { fatalError() }
17
17
 
18
- window.tintColor = UIColor(named: "Tint")
19
-
20
18
  navigationController = window.rootViewController as? TurboNavigationController
21
19
  navigationController.session = session
22
20
  navigationController.modalSession = modalSession
@@ -1,6 +1,33 @@
1
1
  {
2
2
  "colors" : [
3
3
  {
4
+ "color" : {
5
+ "color-space" : "display-p3",
6
+ "components" : {
7
+ "alpha" : "1.000",
8
+ "blue" : "0.898",
9
+ "green" : "0.847",
10
+ "red" : "0.361"
11
+ }
12
+ },
13
+ "idiom" : "universal"
14
+ },
15
+ {
16
+ "appearances" : [
17
+ {
18
+ "appearance" : "luminosity",
19
+ "value" : "dark"
20
+ }
21
+ ],
22
+ "color" : {
23
+ "color-space" : "display-p3",
24
+ "components" : {
25
+ "alpha" : "1.000",
26
+ "blue" : "0.898",
27
+ "green" : "0.847",
28
+ "red" : "0.361"
29
+ }
30
+ },
4
31
  "idiom" : "universal"
5
32
  }
6
33
  ],
@@ -3,30 +3,15 @@
3
3
  <device id="retina6_12" orientation="portrait" appearance="light"/>
4
4
  <dependencies>
5
5
  <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
6
- <capability name="Safe area layout guides" minToolsVersion="9.0"/>
7
- <capability name="System colors in document resources" minToolsVersion="11.0"/>
8
- <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9
6
  </dependencies>
10
7
  <scenes>
11
8
  <!--Turbo Navigation Controller-->
12
9
  <scene sceneID="s0d-6b-0kx">
13
10
  <objects>
14
- <viewController id="Y6W-OH-hqX" customClass="TurboNavigationController" customModule="<%= name %>" customModuleProvider="target" sceneMemberID="viewController">
15
- <view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
16
- <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
17
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
- <viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/>
19
- <color key="backgroundColor" systemColor="systemBackgroundColor"/>
20
- </view>
21
- </viewController>
11
+ <viewController id="Y6W-OH-hqX" customClass="TurboNavigationController" customModule="TurboNativeProjectIos" customModuleProvider="target" sceneMemberID="viewController"/>
22
12
  <placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
23
13
  </objects>
24
14
  <point key="canvasLocation" x="130" y="-2"/>
25
15
  </scene>
26
16
  </scenes>
27
- <resources>
28
- <systemColor name="systemBackgroundColor">
29
- <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
30
- </systemColor>
31
- </resources>
32
17
  </document>
@@ -26,9 +26,9 @@ class TurboNavigationController : UINavigationController {
26
26
  let viewController = makeViewController(for: url, properties: properties)
27
27
  navigate(to: viewController, action: options.action, properties: properties)
28
28
 
29
- // - Initiate the visit with Turbo
29
+ // Initiate the visit with Turbo
30
30
  if isVisitable(properties) {
31
- visit(viewController: viewController, with: options)
31
+ visit(viewController: viewController, with: options, modal: isModal(properties))
32
32
  }
33
33
  }
34
34
  }
@@ -77,33 +77,30 @@ extension TurboNavigationController {
77
77
  case "numbers":
78
78
  return NumbersViewController()
79
79
  default:
80
- assertionFailure("Invalid view controller, defaulting to WebView")
80
+ return ViewController(url: url)
81
81
  }
82
+ } else {
83
+ return ViewController(url: url)
82
84
  }
83
-
84
- return ViewController(url: url)
85
85
  }
86
86
 
87
- private func navigate(to viewController: UIViewController, action: VisitAction, properties: PathProperties = [:], animated: Bool = true) {
88
- let modalNavController = UINavigationController(rootViewController: viewController)
89
- modalNavController.modalPresentationStyle = .fullScreen
90
-
87
+ private func navigate(to viewController: UIViewController, action: VisitAction, properties: PathProperties = [:]) {
91
88
  if isModal(properties) {
92
- present(modalNavController, animated: animated)
93
- } else if isClearAll(properties) {
94
- popToRootViewController(animated: true)
89
+ present(UINavigationController(rootViewController: viewController), animated: true)
95
90
  } else if isPop(properties) {
96
91
  popViewController(animated: true)
97
92
  } else if isRefresh(properties) {
98
93
  session.reload()
99
94
  } else if isNone(properties) {
100
95
  // Will result in no navigation action being taken
96
+ } else if isClearAll(properties) {
97
+ popToRootViewController(animated: true)
101
98
  } else if isReplaceAll(properties) {
102
99
  setViewControllers([viewController], animated: false)
103
100
  } else if isReplace(properties) || action == .replace {
104
101
  setViewControllers(Array(viewControllers.dropLast()) + [viewController], animated: false)
105
102
  } else {
106
- pushViewController(viewController, animated: animated)
103
+ pushViewController(viewController, animated: true)
107
104
  }
108
105
  }
109
106
 
@@ -10,7 +10,7 @@ final class ViewController: VisitableViewController, ErrorPresenter {
10
10
  navigationItem.backButtonDisplayMode = .minimal
11
11
 
12
12
  if presentingViewController != nil {
13
- navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(dismissModal))
13
+ navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(dismissModal))
14
14
  }
15
15
  }
16
16
 
@@ -31,8 +31,6 @@ final class SceneDelegate: UIResponder {
31
31
  private func configureRootViewController() {
32
32
  guard let window = window else { fatalError() }
33
33
 
34
- window.tintColor = UIColor(named: "Tint")
35
-
36
34
  tabBarController = window.rootViewController as? UITabBarController
37
35
 
38
36
  navigationController1.session = session1
@@ -65,7 +63,7 @@ final class SceneDelegate: UIResponder {
65
63
 
66
64
  private func session() -> Session {
67
65
  navigationController().session
68
- }
66
+ }
69
67
 
70
68
  // MARK: - Path Configuration
71
69
 
@@ -1,6 +1,33 @@
1
1
  {
2
2
  "colors" : [
3
3
  {
4
+ "color" : {
5
+ "color-space" : "display-p3",
6
+ "components" : {
7
+ "alpha" : "1.000",
8
+ "blue" : "0.898",
9
+ "green" : "0.847",
10
+ "red" : "0.361"
11
+ }
12
+ },
13
+ "idiom" : "universal"
14
+ },
15
+ {
16
+ "appearances" : [
17
+ {
18
+ "appearance" : "luminosity",
19
+ "value" : "dark"
20
+ }
21
+ ],
22
+ "color" : {
23
+ "color-space" : "display-p3",
24
+ "components" : {
25
+ "alpha" : "1.000",
26
+ "blue" : "0.898",
27
+ "green" : "0.847",
28
+ "red" : "0.361"
29
+ }
30
+ },
4
31
  "idiom" : "universal"
5
32
  }
6
33
  ],
@@ -3,37 +3,23 @@
3
3
  <device id="retina6_12" orientation="portrait" appearance="light"/>
4
4
  <dependencies>
5
5
  <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
6
- <capability name="Safe area layout guides" minToolsVersion="9.0"/>
7
- <capability name="System colors in document resources" minToolsVersion="11.0"/>
8
6
  <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9
7
  </dependencies>
10
8
  <scenes>
11
- <!--Item 2-->
9
+ <!--Turbo Navigation Controller-->
12
10
  <scene sceneID="GwE-Ch-DRP">
13
11
  <objects>
14
- <viewController id="cXb-wA-NUs" customClass="TurboNavigationController" customModule="ContactsIOS" customModuleProvider="target" sceneMemberID="viewController">
15
- <view key="view" contentMode="scaleToFill" id="WTF-II-zfk">
16
- <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
17
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
- <viewLayoutGuide key="safeArea" id="CoL-dA-Hxa"/>
19
- <color key="backgroundColor" systemColor="systemBackgroundColor"/>
20
- </view>
12
+ <viewController id="cXb-wA-NUs" customClass="TurboNavigationController" customModule="TurboNativeProjectIos" customModuleProvider="target" sceneMemberID="viewController">
21
13
  <tabBarItem key="tabBarItem" title="" image="gear" catalog="system" id="rhZ-zi-yeq"/>
22
14
  </viewController>
23
15
  <placeholder placeholderIdentifier="IBFirstResponder" id="ife-PY-okT" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
24
16
  </objects>
25
17
  <point key="canvasLocation" x="1271" y="-647"/>
26
18
  </scene>
27
- <!--Item 1-->
19
+ <!--Turbo Navigation Controller-->
28
20
  <scene sceneID="pAD-IL-Hdw">
29
21
  <objects>
30
- <viewController id="0en-nE-vJA" customClass="TurboNavigationController" customModule="ContactsIOS" customModuleProvider="target" sceneMemberID="viewController">
31
- <view key="view" contentMode="scaleToFill" id="bFn-PZ-ClM">
32
- <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
33
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
34
- <viewLayoutGuide key="safeArea" id="K5f-nY-Cgh"/>
35
- <color key="backgroundColor" systemColor="systemBackgroundColor"/>
36
- </view>
22
+ <viewController id="0en-nE-vJA" customClass="TurboNavigationController" customModule="TurboNativeProjectIos" customModuleProvider="target" sceneMemberID="viewController">
37
23
  <tabBarItem key="tabBarItem" title="" image="house" catalog="system" id="ZWo-HO-m4a"/>
38
24
  </viewController>
39
25
  <placeholder placeholderIdentifier="IBFirstResponder" id="GRr-XE-fAM" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
@@ -61,9 +47,6 @@
61
47
  </scenes>
62
48
  <resources>
63
49
  <image name="gear" catalog="system" width="128" height="122"/>
64
- <image name="house" catalog="system" width="128" height="93"/>
65
- <systemColor name="systemBackgroundColor">
66
- <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
67
- </systemColor>
50
+ <image name="house" catalog="system" width="128" height="104"/>
68
51
  </resources>
69
52
  </document>
@@ -1,3 +1,3 @@
1
1
  module TurboNativeInitializer
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo-native-initializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nixon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-08 00:00:00.000000000 Z
11
+ date: 2023-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -63,7 +63,9 @@ files:
63
63
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/anim/overshoot_interpolator.xml
64
64
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_close.xml
65
65
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_launcher_foreground.xml
66
+ - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_warning.xml
66
67
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/activity_main.xml.tt
68
+ - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/error_web.xml
67
69
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/fragment_native.xml
68
70
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/fragment_web_home.xml
69
71
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -110,7 +112,9 @@ files:
110
112
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_home.xml
111
113
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_launcher_foreground.xml
112
114
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_settings.xml
115
+ - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_warning.xml
113
116
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/activity_main.xml.tt
117
+ - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/error_web.xml
114
118
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/fragment_native.xml
115
119
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/fragment_web_home.xml
116
120
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/menu/bottom_navigation_menu.xml