NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

Technology - Swift

【Swift】アプリでbackgroundを検知した時に画面をマスクする方法

概要 作ったもの 環境 SwiftUIでの実装 UIKit LocalAuthenticationと組み合わせてみる まとめ 概要 金融系のアプリなどでよくある実装かと思いますが、アプリでbackgroundを検知した時に画面をマスクする方法について紹介したいと思います。 作ったもの 環境…

【Xcode】Apple siliconによるLibrary not found for - XXXX...エラーの対処方法

概要 環境 原因と対応方法 回避策 まとめ 概要 「Library not found for - XXXX...」のエラーは基本的にはLibrary Search PathsのPathが正しくなかったり、重複している場合に起こるエラーですが、Apple silicon起因でも表示されましたので、以下当てはまる…

【Swift】ChatGPTを利用してAIチャットアプリを作ってみる

概要 環境 前置き ドキュメントを見る 実際に検証してみる 検証の様子 まとめ 概要 OpenAI APIの中でChatGPTが利用できるので、そちらを利用してAIとチャットできるiOSアプリを試しに作ってみました。その中で作り方やpromptの調整による変化などを簡単に検…

aws-sdk-ios-spmを使用してAmazon Kinesisにデータを送る

概要 環境 aws-sdk-ios-spmを導入する Kinesisにデータを送ってみる まとめ 概要 本題の通りaws-sdk-ios-spmを使用してKinesisにデータを送る方法を紹介したいと思います。 spmと付いているのでお察しの方もいると思いますが今回はSwift Package Managerにて…

【Swift】LocalAuthenticationを使用して生体認証を試してみた

概要 環境 LocalAuthentication 試してみる Privacy - Face ID Usage Descriptionを追加 ViewやClassの実装 解説 まとめ 概要 ロック画面の解除に普段何気なく使用しているFace IDやTouch IDですが、セキュリティレベルを高めるのはもちろん、ユーザーがIDや…

【SwiftUI】Imageのサイズを変更する方法

概要 環境 前提 resizableでframeサイズを反映させる スケールやアスペクト比を調整する 元のアスペクト比を保ちつつ、frame内に収める まとめ 概要 SwiftUIでImageのサイズを変更する際にframeでwidth及びheightを指定するだけでは変更できません。resizabl…

アドベントカレンダー風UIを作ってわかる!SwiftUI

本記事は NRIネットコム Advent Calendar 2022 1日目の記事です。 本記事 ▶▶ 2日目 概要 環境 作成するUI アドベントカレンダーとは アドベントカレンダーアプリ アイコンの準備 UIを実装していく Stackを使用してアイコンを任意の位置に配置する overlay…

【UIKit】iOS16から使用できるcustomを使用して任意の高さのモーダルを実装する

概要 環境 sheetPresentationControllerの使用方法 customで任意の高さのモーダルを表示する まとめ 概要 iOS16からUIViewControllerで使用できるモーダルがcustomを使用することで任意の高さに設定できるようになりました。 今回は試しにSwiftUIのViewを呼…

【UIKit】UIHostingControllerを使ってUIViewControllerの中でSwiftUIのViewを表示する

概要 環境 実装 値を渡す まとめ 概要 SwiftUIのViewでUIViewControllerやUIViewを呼び出す方法はUIViewControllerRepresentableやUIViewRepresentableを使用することで可能です。 逆にUIViewControllerの中でSwiftUIのViewを表示するにはUIHostingControlle…

【SwiftUI】NavigationView及びNavigationStackのタイトルや背景色を変更する方法

概要 環境 実装方法 まとめ 概要 NavigationViewやNavigationStackのタイトルや背景色を変更する方法をご紹介します。 環境 この記事は以下のバージョン環境のもと作成されたものです。 【Xcode】14.1 【iOS】16.1 【macOS】Monterey バージョン 12.6 実装方…

【SwiftUI】UIKitで作成したUIViewControllerやUIViewをSwiftUI側で表示する方法

概要 環境 UIViewControllerRepresentableとUIViewRepresentable UIKit側の実装 SwiftUI側の実装 UIViewControllerRepresentableを使用して呼び出す まとめ 概要 UIKitで作成したUIViewControllerやUIViewをUIViewControllerRepresentableやUIViewRepresenta…

【UIKit】Storyboardを使わずにコードでAuto Layoutを設定し、SwiftUIのプレビューでViewを確認する方法

概要 環境 translatesAutoresizingMaskIntoConstraintsをfalseにする SwiftUIのプレビューを使用する まとめ 概要 Auto Layoutとはビューに設定された制約に基づいて、ビュー階層内のすべてのビューのサイズと位置を動的に計算するレイアウトでその制約など…

【SwiftUI】iOS16でTextEditorやListなどの背景色を変更する

概要 環境 iOS16未満での実装 iOS16からの実装 OS毎に表示制御を行う Listの場合 まとめ 概要 iOS16未満ではUITextView.appearance().backgroundColorを使用することでTextEditorやListなどの背景色を変更する事ができました。 しかしiOS16では上記の実装で…

【SwiftUI】TextFieldやTextEditorで入力した文字数の制限やカウントを表示する方法

概要 環境 Combineでの実装 onChangeでの実装 まとめ 概要 テキストの文字数をリアルタイムでカウントして表示したり、入力文字数の制限をする方法についてCombineフレームワークとonChangeを使用した手法をそれぞれ紹介したいと思います。 環境 この記事は…

【SwiftUI】TabViewを使ってOnboardingを作成する

概要 環境 TabViewの基本的な使い方 Tabの背景色やアイコンに色を付ける方法 Onboardingを作成 まとめ 概要 TabViewを使って以下の様なアプリ起動時に表示するOnboardingを作成してみたいと思います! 環境 この記事は以下のバージョン環境のもと作成された…

【SwiftUI】Pixel Artアプリを作ってみる-その2

概要 環境 きっかけ 追加、修正機能 Pixelのコンポーネント作成 タップ動作でPixelを選択する 任意の色を着色できる おまけ まとめ 概要 【SwiftUI】ForEachでPixel Artアプリを作ってみるの続きとなります。 今回はColorPickerを使用して任意の色を選択して…

【SwiftUI】ForEachでPixel Artアプリを作ってみる

概要 SwiftUIではForEachを使用することでViewを繰り返し処理で生成することができます。 そんなForEachの使い方をご紹介しつつ今回は以下のようにドット絵が描けるPixel Artアプリを作ってみたいと思います。 環境 この記事は以下のバージョン環境のもと作…

【Swift】ChartとGeometryReaderで動的に動くグラフを作成する

概要 環境 参考サンプル 範囲選択から値をリスト表示する 特定のグラフを選択した時に値を抽出して表示する まとめ 概要 ChartにGeometryReaderを使用することで以下のようにタップなどの動作で特定のグラフの値を抽出したり、範囲選択して、値をリスト表示…

【Swift】Chartで作成したグラフの背景色やラベルなどの表示制御について

概要 環境 サイズ、背景色、枠線の制御 XやY軸に対してラベルの表示制御 グラフに対してグリッド線や目盛り線の表示制御 まとめ 概要 Chartで作成したグラフに対して背景色をつけたり、X軸やY軸のグリッドやラベルの表示を制御する方法を紹介します。 環境 …

【Swift】Chartで表示された値の範囲を指定する

概要 環境 chartXScale、chartYScale includesZero reversed グラフ内に余白を追加する まとめ 概要 Chartでグラフを作成した際に縦軸、もしくは横軸に基準となる値が自動で調整されて表示されます。 今記事は各軸に表示される値の範囲を指定する方法の紹介…

【SwiftUI】Chartsフレームワークを使用してグラフを作成する方法

概要 はじめに Chart MarkとProperty foregroundStyle annotation Markの種類 AreaMark RuleMark LineMark PointMark RectangleMark BarMark 最後に 参考記事 概要 iOS16から使用できるようになったChartsフレームワークについて使用方法と大まかな概要を説…

【SwiftUI】GeometryRederでViewのサイズや座標(位置)を取得する

概要 サイズの取得方法 座標の取得方法 global local min、mid、max 使用事例 最後に 概要 GeometryReaderはSwiftUIで使用できるContainer Viewで、Viewのサイズや座標を取得することができます。 Viewのサイズや座標を取得できるようになると以下のような動…

Apple Eventが終わりいよいよiOS16の公開が間近になったので気になる新機能等について整理してみた

https://www.apple.com/jp/apple-events/ 概要 Apple Event Apple Watch iPhone 新機能についておさらい ロック画面のWidget SwiftUIの新しいAPI in-app purchase Use SwiftUI with UIKit App Clips Concurrency Dynamic Island 最後に 概要 先日のApple Eve…

EventKitでカレンダーへイベントを追加する方法【Swift】

記事の概要 EventKitとは 実装の流れ info.plistで設定する カレンダーへアクセスすることの許可を要求する カレンダーへ予定を追加する サンプル全体 最後に 記事の概要 今回はEventKitを使用してiPhoneの標準カレンダーへ予定やTODOを追加してみたいと思い…

【Swift】通知処理の実装方法

記事の概要 通知について 実装方法 手順 通知の許可を求める 任意のタイミングで許可を得るアラートを表示したい場合 通知処理 フォアグラウンドで通知したい! おまけ 最後に 記事の概要 今回の記事で紹介させていただく通知処理は以下のようなものです。 …

FirestoreがSwiftのasync/awaitに対応したので試してみた

前回の記事ではFirebase Apple SDK 9.0.0でasync/awaitに対応したのでAuthenticationで試してみた記事を書きましたが 今回はFirestoreで試してみました。 前回の記事 tech.nri-net.com 概要: 今回試した事 前提知識: Firestoreとは 実践: Firestore 追加 更…

【WWDC2022】What's new in SwiftUIのまとめ!

入社して2ヶ月が経ちFlutterやKotlinと色んなモバイルの技術に触れさせていただいています岡です! いよいよ今週の月曜日からWWDC2022が始まり様々な情報が公開されています! この時期だけは睡眠時間削ってでもキャッチアップしたくなります^^ 個人的にSwif…

【SwiftUI】renderingModeでImageに色をつける

SwiftUIではforegroundColorを使用する事で色を変更する事ができますが、Assetsに用意したImageはrenderingModeでtemplateを指定しないとforegroundColorで指定した色を反映させる事ができません。 今回はrenderingModeのtemplateで色んなファイル形式の違う…

FirebaseがSwiftのasync/awaitに対応したのでFirebase Authenticationで試してみた

Google I/O 2022でFirebase Apple SDK 9.0.0の発表、リリースがされました。 メジャーアップデートにより正式にSwiftへ対応したとの事で色々便利になっているらしいのでまずはよく使う認証機能にあたる「Firebase Authentication」を試してみました。 Google…

OneTapでSlackに投稿するアプリを作ってみた

本記事は モバイルアプリWeek 1日目の記事です。 イベント告知 ▶▶ 本記事 ▶▶ 2日目 SwiftでSlackに投稿するための準備から、実際に投稿してみる所までを試作してみたのでまとめました! 準備:Slack appを作成する WebhookのURLを取得する 実装:コードを…