NRIネットコム Blog

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

【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や…

スクラムマスター研修を受けて理解したスクラムマスターの役割とその先

概要 研修前の理解 受講初日 受講2日目 スクラムマスターとは スクラムマスターのその先 まとめ 概要 先日、認定スクラムトレーナーであるJoe Justiceさんの認定スクラムマスターを受講したので、研修内容を整理しつつ、備忘録として記事にしたいと思います…

【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を使用した手法をそれぞれ紹介したいと思います。 環境 この記事は…

Xcodeで任意のiOSバージョンのシミュレーターを追加する方法

概要 環境 シミュレーターの追加 確認 まとめ 概要 常に最新のOSバージョンで開発できればいいものですが、そんな事はまずなく、検証する際もそのOSに対応した環境で行うために、任意のバージョンのシミュレーターが欲しくなると思います。 そんな時は以下の…

Xcodeでスペルチェックをする方法 - check spelling while typing

概要 環境 check spelling while typingの設定方法 任意のキーワードは除外 除外したキーワードの管理 まとめ 概要 いきなりですがXcodeのcheck spelling while typingは使用していますか? こちら使用するとスペルチェックをエディタに任せる事ができます。…

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

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

【SwiftUI】ESP32使用してスマートキーを自作する【CoreBluetooth】

概要 環境 BLEを使用するために押さえておきたい知識 ペリフェラル セントラル アドバタイズ 接続までの流れを整理 実装 ペリフェラルの実装 NimBLEDeviceをESP32で使用する ペリフェラルのサンプルコード セントラル側の実装 CoreBluetoothを使用したサンプ…

iOS×ESP32でBLE接続して制御するための準備

概要 環境 準備するもの(物理) ESP32とは iPhone®とESP32をBLEで接続する Arduino IDEをダウンロード ESP32のボードを追加 スケッチ例からサンプルコード起動 nRF Connect for Mobileを使用してBLE接続する まとめ 概要 iPhone®とESP32をBLEで接続し、制御…

【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のサイズや座標を取得できるようになると以下のような動…

Arduinoでサーボモーターを使用してみる

概要 Arduinoについて(おさらい) モーターを動かしてみる 最後に 概要 前回の記事では簡単にArduinoを始める環境構築について書きましたので、今回はArduinoでモーターを制御してみました! これから始める人などに参考になれば幸いです。 Arduinoについて(…

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…

Apple Walletで管理できるビジネスカード風なPassの作り方

概要 作成前に確認すること Passの種類を把握する Passのデザイン 共通したレイアウト 搭乗券 クーポン券 イベントのチケット 店舗カード 汎用パス(その他の一般的なパス) 作成 最後に 概要 今回は前回の「Apple WalletやPassについて調査し、Passを作って…

ArduinoをVSCodeで開発する【PlatformIO】

概要 Arduinoとは VSCodeでArduino開発 PlatformIO LEDの点灯 コード 配線 実行 最後に 概要 今回はPlatformIOを利用したArduinoの開発環境を構築してみました。 また開発環境の構築後、LED点灯まで行いましたので、その流れをご紹介したいと思います! Ardu…

Apple WalletやPassについて調査し、Passを作ってみた

概要 Apple WalletやPassについて調査編 WalletとPassの違い Passでできること Passの作成編 Pass作成のおおまかな流れ 証明書周り作成 passファイル作成 signpass取得 Passの生成 最後に 概要 今回は以前から気になっていたApple WalletやPassについて調査…

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を取得する 実装:コードを…

VSCode+Flutterの開発環境を構築する方法[Windows]

前置き 先日WindowsでFlutterを使用する為に環境を構築しましたokaです! 少しハマった所もありましたのでハマったポイントも含め、備忘録として構築方法をまとめてみました!! Contents 環境 Flutter SDKをインストールする ダウンロード zipファイルの展…

Flutterの調査をしてみた[2022年]

前置き 入社して一カ月が経とうとしているokaです! 毎日刺激的で学びが多く、楽しく過ごしています! 現在チーム内では今後Flutterによる開発を検討しています。 個人開発では好きなものを好きなように選定して開発していましたが、チームで導入をしていく…

教員10年目にしてiOSエンジニアにキャリアチェンジした話

はじめまして、2022年度キャリア採用でiOSエンジニアとして入社させていただきました岡です! この時期は新しい年度が始まり、新しい環境で新しい事にチャレンジしてる方が多い時期ではないでしょうか? 自分もその中の一人です! そこで今回は10年間教員を…