20211015のiOSに関する記事は3件です。

【HTML/CSS/jQuery】iOSとAndroidのプッシュ通知を作ってみた。

初めに 業務で、iOSとAndroidのプッシュ通知をHTML/CSSで作ることになりました。 プッシュ通知をHTML/CSS作っている人がいなかったので、 自分で作ってみました。 Codepenを使用して、作成しています。 画面に埋め込むタイプだと、サイズが小さいので Codepenのサイトで、触ってください。 iOS版 プッシュ通知 Android版 プッシュ通知 最後に 色々、触ってみてください。 改良点などあれば、ぜひ教えてください。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Flutter iOS ERROR ITMS-90208 Upload Failed

エラー内容 ERROR ITMS-90208: "Invalid Bundle. The bundle Runner.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.plist." 対処できたFultterのバージョン ~$ flutter --version Flutter 2.6.0-11.0.pre • channel dev • https://github.com/flutter/flutter.git Framework • revision 4b330ddbed (4 weeks ago) • 2021-09-16 17:29:58 -0700 Engine • revision 5b81c6d615 Tools • Dart 2.15.0 (build 2.15.0-116.0.dev) 対処方法 普通にビルドした後にアーカイブ化したファイルの中の info.plistのMinimumOSVersionを修正する ①普通にビルド flutter build ios --release アーカイブ化 Xcodeもしくはコマンドでアーカイブを作成する Flutter.framework/info.plistを修正 XcodeのOrganizerでアーカイブ化されたファイルを開く ~/Library/Developer/Xcode/Archives/日時/Runner 日時.xcarchive/Products/Applications/Runner.app/Frameworks/Flutter.framework/Info.plist VSCODEなどで開く <key>MinimumOSVersion</key> <string>9.0</string> なぜか 8.0 になっているので 8.0 → 9.0 に修正 参考までに 関係あるかわからないが成功した時は 以下の値は初期状態から何もいじっていない9.0です。 iOS Deployment Target 9.0 Deployment Info iOS 9.0 AppFrameworkInfoのMinimumOSVersion 9.0 おまけ(ここまでの過程) stackoverflow、githubを見ながら、いろんな方法を試した。投稿日も古いのでFultterのバージョンで対処方法が異なるよう。AppleがFlutterを毛嫌いして弾いているのかと妄想もしてしまった。当方の環境と同じ方であればやってみる価値あるとおもいます。 以下は参考にしたサイト8割がた参考にはならなかった
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【SwiftUI】インジケーター

ソースコード Viewのレイアウトは参考文献より引用。 import SwiftUI // trueならばViewを表示、falseならばEmptyView() extension View { @ViewBuilder func isHidden(_ hidden: Bool) -> some View { if hidden { EmptyView() } else { self } } } struct LoadingIndicatorView: View { let isLoading: Bool @State private var isAnimating = false private let animation = Animation.linear(duration: 1).repeatForever(autoreverses: false) init(_ isLoading:Bool){ self.isLoading = isLoading } var body: some View { GeometryReader { geometry in ZStack { // ①Loading中に画面をタップできないようにするためのほぼ透明なLayer Color(.black) .opacity(0.01) .frame(width: geometry.size.width, height: geometry.size.height) .edgesIgnoringSafeArea(.all) .disabled(self.isLoading) Circle() .trim(from: 0, to: 0.6) .stroke(AngularGradient(gradient: Gradient(colors: [.gray, .white]), center: .center), style: StrokeStyle( lineWidth: 8, lineCap: .round, dash: [0.1, 16], dashPhase: 8)) .frame(width: 48, height: 48) .rotationEffect(.degrees(self.isAnimating ? 360 : 0)) .onAppear() { withAnimation(Animation.linear(duration: 1).repeatForever(autoreverses: false)) { self.isAnimating = true } } .onDisappear() { self.isAnimating = false } } .isHidden(!self.isLoading) } } } struct LoadingIndicatorView_Previews: PreviewProvider { static var previews: some View { LoadingIndicatorView(true) } } 補足 View表示の切り替えはextensionで拡張したViewプロパティを使用。(標準Viewプロパティ.hidden()は引数を持たないため表示・非表示の切り替えが煩わしい) 最適化を考慮し、self.hidden()の代わりにEmptyView()を返している。 参考文献 この記事は以下の情報を参考にして執筆しました。 SwfitUIで通信中にIndicatorを表示できるようにする。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む