- 1. iOSのNSTimeZoneのUTCってnameがGMTなんだ..
- 2. 【Swift】Combine ✕ Firestore ✕ Codableで通信処理を書く(取得・追加・削除の処理)
- 3. 【iOS】アーキテクチャ MVVM 解説してみた!
- 4. Github Actions から Autify for Mobile (iOS) テストを実行する
- 5. Fast-Neural-Style-TransferをiOS、MacOSで使えるようにする CoreML変換
- 6. [iOS/Android]FirebaseAuthの電話番号認証(SMS)にてボット判定(reCAPTCHA 検証)をなくす方法
- 7. WidgetKitで天気予報アプリ作ってみた〜記事まとめ〜
- 8. 2022年のiOS/Androidの技術をざっくりキャッチアップ
- 9. 【iOS】AppleSilicon環境(MacOS)でiOSアプリを実行した時にMacで実行しているか判定する
- 10. WidgetKitで天気予報アプリ作ってみた〜View実装編〜
- 11. SwiftUIでテーブル形式のビュー(Listなど)でローディング中のスケルトンを適用する方法
- 12. カテゴリとクラス拡張についてメモ
- 13. ネイティブアプリの初回審査通過に向けて気をつけたポイント(2022年2月版)
- 14. 四角形を検出する
- 15. 個人開発で初めてiOSアプリをリリースした備忘録
- 16. On Demand Resourcesを使う(Swift Concurrency対応)
- 17. 【Android/iOS】Webブラウザのアドレスバーを非表示にする方法
- 18. SwiftUI Tutorial の復習
- 19. 【Flutter-iOS】【GithubActions】flutterのCD環境を整備してみた
- 20. 【SwiftUI】Toggleを用いてチェックボックスを作る
iOSのNSTimeZoneのUTCってnameがGMTなんだ..

AndroidとiOSでTimeZoneのUTCにまつわる調査をしていたところ想定外の結果になったので書き残しておきます。誰か真相を知っていたら教えて下さい。
# GMTとUTCの違い
GMTとUTCの違いをググるとCITIZENの用語集とよくある質問リストが最初に出てくるhttps://citizen.jp/faq/detail/id1363
>両者は、目的も概念も算出方法もまったく異なりますが、日常生活に不都合のない精度の時間測定(整数の秒)であれば、ほぼ差がないと考えて問題ありません。
そう、ほぼ一緒と考えてよいということ。日本のAsia/Tokyo(+9:00)より9時間前のタイムゾーンということだ。
# Android(Kotlin)の場合
“`kotlin
import java.util.TimeZonef
【Swift】Combine ✕ Firestore ✕ Codableで通信処理を書く(取得・追加・削除の処理)
## はじめに
Combineを使った非同期処理として、`URLSession`は標準ライブラリが提供されておりますが、`Firestore`は自分で実装する必要があります。このあたりの日本語での情報量が、`URLSession`と比較して、未開拓に感じましたので、自分が実装したサンプルコードを記事にしてみました。
今回、書いた処理は、Firestoreからの**取得・追加・削除**の処理です。(CRUDの中では更新がありませんが、更新処理は追加処理とほぼ変わらないため割愛します。)
## 前提条件
– `FirebaseFirestore`と`FirebaseFirestoreSwift`がプロジェクトに導入されていること
– ジェネリクスについて理解していること
– `Combine`と`Firestore`の使い方を理解していること#### ジェネリクスについて
https://swift.codelly.dev/guide/ジェネリクス/#ジェネリック型-generic-types#### Firestoreについて
https://firebase.googl
【iOS】アーキテクチャ MVVM 解説してみた!
# 目的
iOS開発における MVVM について知ること(キーワード: `データバインディング`, `リアクティブプログラミング`, `RxSwift`, `Combine`)
# MVVM とは?
`データバインディング`という仕組みを使用したアーキテクチャです。(データバインディング?超重要)構造は `M: Model` `V: View` `VM: ViewModel` となる。
**画面の描画 = View** と **プレゼンテーションロジック = ViewModel** を分離するためのアーキテクチャ。GUIアーキテクチャの1種。ViewとViewModelを`データバインディング`という仕組みで関連づける。
ViewModelの状態変更に同期してViewの状態も更新され、画面に反映される。
Github Actions から Autify for Mobile (iOS) テストを実行する
Github Actions から Autify for Mobile (iOS) テストを実行する方法を解説します。
## 前提
* Autify for Mobile(iOS) で Simulator テストを実行する
## fastlane 設定
Autify へアップロードするために、*.app を生成します。
以下の fastlane を設定します。
Autify は x86_64 Simulator で実行されるため、arm64 ではなく x86_64 の *.app を生成するようにしています。
`fastlane/Fastfile`
“`ruby
lane :build_simulator do
gym(
scheme: “MyApp”,
skip_package_ipa: true, # *.app を生成するため、*.ipa は不要
skip_codesigning: true # Simulator 実行のため署名不要
destination: “generic/platform=iOS Simulator”
Fast-Neural-Style-TransferをiOS、MacOSで使えるようにする CoreML変換
# Fast-Neural-Style-TransferをiOSで使う方法です
![]()
![]()
[iOS/Android]FirebaseAuthの電話番号認証(SMS)にてボット判定(reCAPTCHA 検証)をなくす方法
# 概要
この記事ではFirebaseAuthの電話番号認証(SMS)にてボット判定(reCAPTCHA 検証)をなくす方法についてご紹介します。
今回iOS,Androidそれぞれボット判定を消す事が出来たのでそれぞれ解説します!# そもそもボット判定とは?
以下のような画面を指します。まずこのような画面が表示されたあとに
このような画面が出る場合があります。
これをユーザにサインアップ、ログインしてもらう度に実施して
WidgetKitで天気予報アプリ作ってみた〜記事まとめ〜
## はじめに
この記事は**WidgetKitで天気予報アプリ作ってみた**シリーズで書いた記事のまとめです。## 記事一覧
1.天気情報取得編https://qiita.com/nkekisasa222/items/359192455b65fb60705d
2.位置情報取得 & 保存編
https://qiita.com/nkekisasa222/items/249240ad36128de05557
3.Widget Extension追加編
https://qiita.com/nkekisasa222/items/744754523172035cc9bf
4.タイムライン作成編
https://qiita.com/nkekisasa222/items/b22c98249330f3f5c459
5.View実装編
https://qiita.com/nkekisasa222/items/93991d64e8b5b5396b36
誰かの役に立てば幸いです!
## おしらせ
現在副業でiOSアプリ開発を募集しています。
ご依頼は[Twitter DM](ht
2022年のiOS/Androidの技術をざっくりキャッチアップ
ネイティブアプリにも宣言型UIとかなんかいろいろ入ってきたので、「いい加減そろそろ覚えないとな~~」ってなってる人は少なくないと思ってるんですけれど、一足先に一通り触ったのでどんな感じで学べばいいのかなという参考になればという感じの記事です。
# 宣言型UI
WebにjQueryがもたらされたとき、だれでも簡単に直接DOMを触ってViewを弄れるようになった結果、アプリの大規模化・保守の長期化に伴って手に負えなくなったので、それを解決するためにReact辺りが宣言型UIの思想を生み出した…というざっくりした認識を持ってるんですけれど、合ってるかは知りません。
とまれ、ネイティブアプリにも数周遅れではありますが宣言型UIの流れがきています。
## SwiftUI
SwiftUIの現在の最新バージョンは3です。
どんどん便利になるのはいいことなんですけれど、サポートするiOSのバージョン指定によっては使えない機能とかがあります…。
これは公式のコードなのですけれど、
“`swift
struct Content: View {
@State var model =
【iOS】AppleSilicon環境(MacOS)でiOSアプリを実行した時にMacで実行しているか判定する
# iOSアプリをAppleSilicon環境(MacOS)で実行した時の判定
以下質問にて@nukka123さんに回答いただきました。
https://qiita.com/Howasuto/questions/3fc5ba81ea6240470ac4以下のコードでAppleSilicon環境での実行時の判定を可能にします。
またUIDevice.current.userInterfaceIdiomでの判定基準はあくまでユーザーインターフェースのため、AppleSilicon環境で実行した際にはiPad用のインターフェースが適応されるため、判定結果としてはiPadとして判定されます。“`swift
if ProcessInfo.processInfo.isiOSAppOnMac {
// iOSアプリをMacで実行時
print(“iOSAppOnMac”)
} else if UIDevice.current.userInterfaceIdiom == .phone {
// iPhone用インターフェースで実行時
print(“iPhone”)
}
WidgetKitで天気予報アプリ作ってみた〜View実装編〜
## 投稿の経緯
この記事は、前回投稿した**WidgetKitで天気予報アプリ作ってみたシリーズ~タイムライン作成編~**の続編です。
今回はいよいよViewを実装していきます。前回の記事を見てない人は先に↓こちら↓を確認してください。
https://qiita.com/nkekisasa222/items/b22c98249330f3f5c459
## 環境
Swift 5.5
Xcode 13.2.1## サンプルプロジェクト
GitHubにPushしています。気になる方はご覧ください。
https://github.com/ken-sasaki-222/WeatherWidget
## Viewで表示する内容
でローディング中のスケルトンを適用する方法
# はじめに
`List`や`LazyVGrid`などの画面初期化時にリスト数が決まっていないViewに対し、YoutubeやFacebookで使われているような、ロード中のスケルトンを表示する方法を書いてみました。ちなみにスケルトンスクリーンとは、このようなやつです。
https://ws-design.net/skeleton_screen/
実装イメージは下記です。
![]()
# 結論
当たり前っちゃ当たり前なので
カテゴリとクラス拡張についてメモ
UIImage+Rect.mとか、NSString+size.mとか、不思議だなと思っていた。
やっていることは、もともとのiOSフレームワークを活用して、やりたい機能だけ追加しているという感じだった。
なので、もともと存在するiOSフレームワークにだけ使える拡張機能かと思っていたが、違うらしい。新規で作成したVCなどにも活用できる。
いや、そりゃそうでしょって感じなのですが。
クラス拡張は、UIImageやNSString、UIButton、UILabelなどよく使うUIKitやFoundationの機能拡張が多い。
カテゴリは。冗長化してきたソースを機能ごとに分割するのに使うケースが主流なのかな。そうじゃないよ、というときは、指摘していただければ、確認しますので、
気楽にコメントください。
ネイティブアプリの初回審査通過に向けて気をつけたポイント(2022年2月版)
# 0. 概要
この度、**新規の**ネイティブアプリをiOS/Androidの両プラットフォームにて**スケジュール通り**にリリース可能な(Apple/Googleによる審査が通過した)状態にすることができました!
※審査時間がとても早かった(通常、初回は2週間ほどを見るのが良いと言われていますが、提出から通過までなんと1営業日…!)というラッキーはありましたが、間違いなく開発チームの努力の成果だと思っています!
チームの中でも私個人は今回、技術的な側面ではなく、アプリが審査基準を満たせているか?審査提出に必要なタスクは何か?といった側面において、リスク回避に努めました。スケジュール通りに何かを成し遂げる際は「不確定要素」をどれだけ減らしていくかといったことが重要だと思いますが、アプリのサービスリリースにおいて最大の不確定要素は「審査でのリジェクト」になるかと思います。今回得た知見で、どなたかの「不確定要素」を減らす手助けが出来れば…!という気持ちです。
# 1. 公式のガイドラインを読む
兎にも角にもまずは公式のガイドラインを読みました。入り口が分かりづらかったり、各所
四角形を検出する
#画像内の四角形を検出する方法です
#書類や標識の検出に
四角形の人工物を検出できれば、場面に応じて様々な用途に活かせそうです。
例えば、ドキュメント内の四角形の検出など。#Visionの四角形検出が使える
。#方法
画像にVNDetectRectangleRequestをするだけです。
“`swift
let request = VNDetectRectanglesRequest()
let handler = VNImageRequestHandler(ciImage: ciImage!, options: [:])
try! handler.perform([request])
guard let results = request.results else { return
個人開発で初めてiOSアプリをリリースした備忘録
#目次
– [はじめに](#はじめに)
– [私のスキル](#私のスキル)
– [難しかった点](#難しかった点)
– [良かった点](#良かった点)
– [さいごに](#さいごに)#はじめに
先日、初めて個人としてiOSアプリをリリースしました。
リリースまでの期間は約3ヶ月でした。まだまだ知らないことも多く、大変学びのある経験でした。
そこで今回は、リリースまでの過程で感じたことや気づいた点について書きました。
これから個人開発をしてみたい方、現在個人開発をしている方の役に立つかもしれません。#私のスキル
まずは簡単に私のスキルについて紹介します。
個人開発は前提知識がどれくらいあるかで難易度が変わるので、参考になれば幸いです。– 現役のiOSエンジニア。iOSアプリの開発やリリース経験あり。
– 基礎的なSwiftの記法、Xcodeの使い方、リリース方法について理解している。
– エラーや分からない事があっても、検索等を駆使して多くの場合は解決できる。#難しかった点
**⭐️スケジュール管理が難しい**
私の場合、基本的には平日仕事をしながら隙間時間で個人開発を進
On Demand Resourcesを使う(Swift Concurrency対応)
個人アプリで[On Demand Resources](https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/index.html#//apple_ref/doc/uid/TP40015083-CH2-SW1)を使いたいところがあり、以下の記事を参考に導入してみました。
https://qiita.com/kukimo/items/39a0eeb40626a4cd364f
https://www.raywenderlich.com/520-on-demand-resources-in-ios-tutorial仕組みや手順は公式ドキュメントと上記記事を参照するのが早いと思います。
Swift Concurrencyで以下のようなユーティリティを作っておくとより簡単に導入できるよというお話。“`swift:ResourceLoader.swift
import Foundation/// On Demand R
【Android/iOS】Webブラウザのアドレスバーを非表示にする方法
#はじめに
Android/iOSのWebブラウザのアドレスバーを非表示にする方法です。
ネットで調べて出てくることには出てくるのですが、なかなかたどり着かなかったのでQiitaに投稿しておきます。#やりたいこと
据え置きのタブレット端末でWebアプリを動作させるときに、アドレスバーを非表示にしたい。
↓
調べたところ、Webブラウザの設定でフルスクリーン(アドレスバー非表示)にするのは無理そう。
(フィッシングサイトによる悪用などを考慮している?)
↓
**Webブラウザの設定変更以外の方法でアドレスバーを非表示にしたい。**←今回やりたいこと#結論
以下のサイトを参考にしました。
[[HTML5] フルスクリーンの開始と解除](https://blog.katsubemakito.net/html5/fullscreen)対象ページのheadタグ内に以下のmetaタグを記述します。
“`html
関連する記事
OTHERカテゴリの最新記事
-
- 2023.09.22
今さら聞けないHTML 2023年09月22日
-
- 2023.09.22
オープンソース調べOSS 2023年09月22日
-
- 2023.09.22
WEBエンジニアが読んでおきたい技術書 2023年09月22日
-
- 2023.09.22
iOS関連のことを調べてみた2023年09月22日
-
- 2023.09.22
Python関連のことを調べてみた2023年09月22日
-
- 2023.09.22
Ruby関連のことを調べてみた2023年09月22日