Reigle 技術ブログ

プログラミング、IT関連の記事中心

Swift

Swiftのswitch文中のreturnの挙動に関して

目次 switch文中のreturnの挙動 switch文中のreturnの挙動 以下の様なソースコードをPlaygroundで作成して実行します。 class aaa { func hoge() { let tp = 1 let hoge = 1 switch tp { case 1: print("===========1") if hoge == 1 { print("===========2"…

Swiftでソースコードでホーム画面に戻る処理(URLSessionTask.suspend)

目次 ホーム画面に戻る方法 ホーム画面に戻してからアプリ終了 ホーム画面に戻る方法 以下の処理を行うことで、アプリ起動中にソースコードでホーム画面に戻す事が可能です。 UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.…

Swiftでアプリの終了処理を行う方法(exit)

目次 アプリの終了方法 審査に関して アプリの終了方法 以下の処理を行う事で、アプリを終了させる事ができます。 exit(0) 審査に関して いくつかの記事などで、この方法はリジェクトされるなどの情報がございます。 しかし、Appleから明言されておらず、リ…

iOSのBetaを検証チームに渡す方法

目次 はじめに Betaを渡す方法 検証チームがBetaをインストールする方法 はじめに 開発者は、Apple Developer Programに加入しているが、検証チームは加入していないという状況を想定しています。 Betaを渡す方法 以下のURLにアクセスします。 developer.app…

SwiftでUINavigationBarの色が設定されなくなった場合、下線を非表示にしたい場合(iOS15以上)

目次 今までの記述 iOS15以降の背景色設定 iOS15以降の下線非表示 iOS15以降のソースコードまとめ 今までの記述 UINavigationControllerの背景色、文字色、下線非表示の今までのソースコードは以下です。 public class func setNavigationController(vc: UIV…

Swiftの広告パーミッション確認の表示方法(AppTrackingTransparency)

目次 AppTrackingTransparencyとは 「Info.plist」の設定 広告パーミッション確認の表示方法 iOS14以前をサポートする場合 広告表示処理周りのサンプル AppTrackingTransparencyとは Appleの公式サイトより引用 新規App、および既存Appのアップデートを提出…

TextFieldに英数記号のキーボードのみを表示する方法【Swift】

■はじめに ここでは、以下の要望への対応方法を記載します。 TextFieldにフォーカスを当てた時のキーボードを、英数記号のみにして欲しいユーザーの設定関係なく、英数記号のキーボードにして欲しい。キーボードの切り替えを許さないで欲しいパスワード入力…

SQLite3でINSERT時にPrepared Statementを複数使用する方法【Swift】

■はじめに 以下のサイトを参考に、SQLite3は使用できるようにしておいてください。(基本的なことは飛ばして説明します。) reigle.info ■手順 まずは、ソースコードの全量は以下 func insert() { var stmt: OpaquePointer? let queryString = "INSERT INTO …

キーチェーンの共通クラスの作成【Swift】

■はじめに ライブラリは使用しないで、キーチェーンを使用する共通処理を記載します。 なるべく保守性の高いクラスにしようとして作成しました。 (今後、修正するかも。。。) あくまで、参考までに。 ■手順 「KeyChain.swift」クラスを作成する。 以下を丸…

スプラッシュのViewを取得する方法【Swift】

■はじめに 以下のようにスプラッシュのViewを取得したい場合があります。(たまに) スプラッシュ表示後も一定時間スプラッシュを表示したい特定の画面でローディングダイアログなどの代わりにスプラッシュを表示したい(裏で画面遷移するなど) その場合に…

UserDefaultsの処理をまとめて保守性が高いUserDefaultsの書き方【Swift】

■はじめに UserDefaultsの処理を保守性を高く記載しようと思って、色々と試行錯誤しました。 ここで紹介する方法は一例ですので、参考にしてください。 (Keyを定数クラスで管理するなども考えましたが、保守するクラスが増えるだけでしたので断念。) ■手順…

「kCBAdvDataManufacturerData」の操作【Swift】

■はじめに Bluetoothで「kCBAdvDataManufacturerData」の値を取得してどうのこうのしたい時があります。 その方法で結構詰まったので、メモ。 スポンサードリンク (adsbygoogle = window.adsbygoogle || []).push({}); ■手順 「kCBAdvDataManufacturerData」…

ライブラリを使用せずにJWT(JSON Web Token)をデコードする方法【Swift】

■はじめに APIなどでJWTを取得する事があります。 その際にそのJWTをデコードして値を操作する必要があるので、ここでは「ライブラリを使用せずに」JWTをデコードする方法を記載します。 ※ライブラリ使ってはいけないプロジェクトもあるので。。。 ■手順 以…

APIKitのサンプル(郵便番号検索)【Swift】

■はじめに ここでは、「APIKit」というライブラリのサンプルを記載します。 APIKitの詳細に関しては、GitHub(https://github.com/ishkawa/APIKit)を参照してください。 APIKitの詳細を簡単に説明すると、タイプセーフにAPIを利用するためのライブラリです…

UIButtonの画像のタップ領域を設定する方法【Swift】

■はじめに UIButtonに画像を設定した際に、その画像の領域以上にタップ領域を設定したい場合があります。 (画像を小さくするけど、タップはしやすいようにしたい場合など) その際に、タップ領域を増やす方法を記載します。 ■手順 以下のソースでタップ領域…

Sign In with Appleを実装する方法【Swift】

■はじめに Appleから、Googleログインなどのソーシャルログインを追加する場合にはAppleのソーシャルログインを追加するようにレビューガイドラインが更新されました。 そのため、ここでは、Appleのソーシャルログイン(Sign In with Apple)の実装方法を記…

KeyChainの操作(CRUD)の方法【Swift】

■はじめに アプリ内のデータを保存する際にUserDefaultsなど様々な方法で保存ができます。 ここで紹介するKeyChainへの保存は、データを強固に保存することができます。 また、同じAppleIDを利用する事で別端末へ引き継いだりもできます。 ■手順 KeyChainの…

暗号化と複合化の方法【Swift】

■はじめに パスワード情報など、セキュリティを強固にしたいデータを扱う際に暗号化/複合化を利用することがあります。 ここでは、「CryptoSwift」のライブラリを使用させて頂き、暗号化/複合化を行う方法を記載します。 ■手順 CocoaPodsを使用して、「Crypt…

TableViewの余分なセルの線を消す方法【Swift】

■はじめに TableViewの余分なセルに線画ついていると、ユーザーがタップしてしまう可能性があります。 UXを改善するために、余分なセルの線を消してあげれば、誤認がすくなくなります。 ■手順 以下の処理を記載することで、TabelViewのあまりのセルの線を消…

子Viewを全て削除する方法【Swift】

■はじめに Viewをリフレッシュしたい場合など、子要素のViewを全て削除したい場合があります。 ここでは、その子Viewを全て削除する方法を記載します。 ■手順 以下に、子Viewを削除する関数を記載します。 /// 子Viewを全て削除する処理 /// - Parameter par…

画像ボタンのタップ領域を増やす方法【Swift】

■はじめに 「デザインでは、小さいボタンがいいけど、タップし辛い!」ということがあります。 その際に、ボタンのタップ領域を増やしたいので、ここではその方法を記載します。 ちなみに、「setImage」関数を使用して画像を設定したボタンを前提にしていま…

ビルドタイプに応じた処理【Swift】

■はじめに APIの向き先を、開発環境と本番環境で分ける時など、ビルドタイプに応じて処理を変えたい場合があります。 ここでは、そのビルドタイプ(Debugとそれ以外)に応じた処理分けの方法をまとめます。 ■手順 以下のソースコードでDebug環境とそれ以外(…

LicensePlistライブラリを使用したライセンスの表示【Swift】

■はじめに サードパーティ製のライブラリを使用する際に、MITライセンスや、Apatchライセンスなどのライセンスのルールで、ライセンスの内容を表示することが必要になります。 アプリ内にライセンス表示画面を出すことでも対応できますが、それだと保守が面…

アプリのAppStoreを表示する方法【Swift】

■はじめに アプリの強制アップデートを行わせたい場合など、自分のアプリのAppStoreを表示したいことは、ときどきあります。 ここでは、指定のアプリのAppStoreを表示する方法を記載します。 ※表示したいアプリはリリースされている必要があります。 ■手順 …

アプリバージョンの取得を行う方法(強制アップデート)【Swift】

■はじめに アプリでよくある、最新版のアプリじゃないと、アップデートしてね〜 というようなダイアログを出す場合があります。 これは、最新アプリがあるのに、古いバージョンのアプリを利用されないようにするためには、非常にいい方法です。 ここでは、Ap…

NSMutableArrayのデータをカンマ区切りの文字列に変換する方法【Swift】

■はじめに NSMutableArrayの値をカンマ区切りの文字列に変換する方法を記載します。 CSVでデータを保持したい場合などに利用することがあるかと思います。 ■手順 まずは、NSMutableArray型の変数を作成し、適当なデータを格納します。 var array = NSMutable…

ロガー(Logger)クラスの自作方法【Swift】

■はじめに コンソールログを残したままリリースすると、ログが表示されてしまいます。 APIの情報などをログに出してしまうと、セキュリティ上、問題になるので、開発環境ではログが表示されて、本番環境では表示されないようにロガークラスを作成して管理し…

文字列の空文字チェックとnilチェック【Swift】

■はじめに 文字列の空文字チェックとnilチェックに関して記載します。 TextFieldやTextViewなどで、空文字チェックを行う場合や、オプショナル型のString型の変数のnilチェックを行う前提としています。 ■手順 以下の方法で空文字チェックを行います。 let t…

設定画面に遷移する場合のURLスキームのまとめ【Swift】

■はじめに 本記事では、アプリからiPhoneの設定アプリに遷移する方法をまとめています。 ■手順 以下のソースを記載することで、設定アプリを開くことができます。 if let url = URL(string:"app-settings:path") { UIApplication.shared.open(url, options: …

UIPageControlで横スライドのチュートリアルを作る方法【Swift】

■はじめに 本記事では、「UIPageControl」「UIScrollView」を使用して、横スクロールのよくあるチュートリアル画面を作る方法をまとめています。 使用している画像はサンプルの画像なので、チュートリアルの画像に差し替えて使用してください。 ■手順 ソース…