【SQL】txtからcsvを生成する

どうも、ねこきち(@nekokichi1_yos2)です。 SQLにデータを登録する際、予めcsvを用意すれば、簡単に登録できます。 ですが、テキストファイルからcsvを生成すれば、もっと手軽です。 今回は、テキストファイルをcsvに変換する方法を備忘録として書きます。…

指定ファイルの更新時に通知してくれるスクリプト【シェルスクリプト】

どうも、ねこきち(@nekokichi1_yos2)です。 とある企業のコーディング課題で、ファイルを監視する問題が出て、シェルスクリプトで実装しました。 備忘録として投稿します。 動作環境 仕組み 監視対象のファイルパスを取得 変更日時を取得 監視開始 最新の…

【サクメモ】進捗状況ver0.02:コーディング開始

どうも、ねこきち(@nekokichi1_yos2)です。 理由は、良いアプリを作るために何をすべきかを考えてしまうから、です。 下記を参考に、プロトタイピングツールでアプリの完成図を作ろうとしました。 ↓ zenn.dev しかし、 デザインの経験が0 0からデザインを…

【Swift】TextViewで選択した部分の文字列を取得

実現したいこと 仕組み textViewの文字列を選択 選択した文字列の開始位置、長さを取得 カーソルが1文字以上を選択してるかを条件分岐 選択した文字列の開始位置、終了位置を取得 部分文字列を取得 ストーリーボード ソースコード 参考 実現したいこと 先頭~…

【サクメモ】進捗状況Ver0.01:コンセプト決め

どうも、ねこきち(@nekokichi1_yos2)です。 iOSエンジニアになるべく、2度目の転職活動中です。 個人開発で作ったアプリをリリースする予定ですが、アピールポイントを増やそうと、リリースノートの投稿も始めます。 リリースノートの内容は、個人開発に関…

【XCTest】No target application path~のエラーについて

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、No target application path specified via test configuration、のエラーでつまずいたので、備忘録を残します。 発生タイミング 解決方法 Podfileでテスト用TARGETの記述を追加 新規のXCTestファイル、…

【Swift】ローカル通知が受信されたかを知る方法

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、ローカル通知の受信を検知する方法を載せます。 ローカル通知のデリゲートメソッドについて getDeliverdNotification()を使う getDeliverdNotification()でできること ソースコード ローカル通知のデリ…

【Swift】RealmStudioでRealm内のデータを閲覧する方法

どうも、ねこきち(@nekokichi1_yos2)です。 Realmには、RealmDatabaseを覗けるツール、RealmStudioが用意されています。 普通はDatabaseを実装する場合、データが正常に保存されてるかを確認する必要があり、ビルドしてデータを取得/出力などをします。 で…

【Swift】UIGraphicsContextで空のUIImageを作る

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、画像が入ってないUIImageを作る方法、を備忘録として書きます。 解説 UIGraphicsContextを使う 結果 ソースコード 参考 解説 UIImageは画像を格納するクラスなので、画像がなければクラスとして機能しま…

【Swift】UIImageのサイズを変更する

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、UIImageのサイズを変更する方法を備忘録として書きます。 ソースコード 参考 ソースコード extension UIImage { func resize(size _size: CGSize) -> UIImage? { let widthRatio = _size.width / size.w…

【Swift】画像を圧縮して容量を減らす

どうも、ねこきち(@nekokichi1_yos2)です。 Realmに画像を保存しようとした時、データ容量が大きすぎる、とのエラーに遭遇しました。 stackoverflow.com そこで、画像を圧縮すると、無事にRealmへ保存できました。 今回は、備忘録として画像の圧縮方法、を…

【Swift】handlerとcompletionを変数/関数で作る

どうも、ねこきち(@nekokichi1_yos2)です。 Swiftには、コールバック、が存在します。 (例:handler, completion) メリットは、 まとまった処理をブロックで持つ コールバック元の処理が完了後に実行される 非同期処理を順番に処理できる の特性を持って…

【Swift】UserDefaultにタプルを辞書で保存する

どうも、ねこきち(@nekokichi1_yos2)です。 タプルをUserDefaultに保存する方法を模索してて、良い方法を見つけたので、備忘録として残します。 解説 Data型で保存できないのか? タプル→辞書、に変換 辞書→タプル、に変換 結果 ソースコード 参考 解説 Us…

【Swift】unWindSegueで前画面に戻りつつ値を渡す

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、unWindSegue、の使用方法を書いていきます。 解説 画面を用意する(2個以上) 前画面にunWindSegueを記述 StoryBoardで遷移元にunWindSegueを接続 遷移元でunWindSegueを実行 結果 ソースコード 参考 [X…

【Swift】UserDefaultに非対応のデータを保存する

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、UserDefaultでAny型に含まれる、UserDefaultには非対応のデータを扱う方法を書いていきます。 解説 Any型で保存できないの? Data型に変換して、Data型から元の型に戻す 結果 ソースコード 参考 解説 An…

【Swift】GeccoでスポットライトなUIを実現

どうも、ねこきち(@nekokichi1_yos2)です。 アプリの初回起動時、チュートリアルが流す場合、ユーザーにUIの説明をする必要があります。 その際、スポットライトでUIを照らして、テキストで説明するチュートリアルをたまに見かけます。 (参考:https://ww…

【Swift】UIImageViewでアニメーション

どうも、ねこきち(@nekokichi1_yos2)です。 画像を連続で表示させる - アニメーションと言えば、GIF、が思い付きます。 しかし、GIFを作ろうとすると、 用意した画像をGIFに変換 アニメーションを録画してGIFに変換 するなどの手間がかかります。 そこで、…

【Swift】SDWebImageで新しい画像が反映されない問題

どうも、ねこきち(@nekokichi1_yos2)です。 FirebaseのSDWebImageでStorageに新しくアップロードした画像が表示されず、更新前の画像が表示されてしまう問題の解決策を書いていきます。 解説 ソースコード 参考 解説 原因は、ローカル(デバイス?)に保存…

【Swift】画面を全て閉じて、ホーム画面に戻る

どうも、ねこきち(@nekokichi1_yos2)です。 今開いている画面を全て閉じて、ホーム画面(もしくは初期画面)へ1発で戻りたい場合があります。 かといって、 dismissを多用する → 処理の流れが複雑に ホーム画面に遷移する → 画面が生成され、処理が圧迫さ…

【Swift】NavigationBarにBarButtonを追加

どうも、ねこきち(@nekokichi1_yos2)です。 NavigationBarにBarButtonを追加します。 解説 結果 ソースコード 解説 UIBarButtonを代入し、 title(ボタンの文字) style(ボタンの種類) target(処理の対象?) action(ボタン押下時の処理) を設定しま…

【Swift】フォア/ バックグラウンドを検知

どうも、ねこきち(@nekokichi1_yos2)です。 ユーザーがアプリ起動中に ホーム画面 スリープ画面 とアプリ間を行き来してる時も、処理を継続させたい場合があります。 つまり、 フォアグラウンド(アプリ画面) バックグラウンド(アプリ画面外) における…

【Swift】SegmentとProgressの高さを変更する方法

どうも、ねこきち(@nekokichi1_yos2)です。 UISegmentControlやUIProgressViewなど、一部のUIには高さ(もしくは幅)を変更できないUIがあります。 ですが、見た目の高さを変更することは可能です。 解説 結果 ソースコード 解説 使用するのは、transform.…

【Swift】FireStoreで複数のドキュメントを削除

どうも、ねこきち(@nekokichi1_yos2)です。 FireStoreにあるドキュメントを削除するには、 Firestore.firestore().collection("co1").document("do1").delete() を使えばいいだけです。 しかし、複数のドキュメント(もしくはコレクション)を1度に削除す…

【Swift】2つの日付差を秒で算出

どうも、ねこきち(@nekokichi1_yos2)です。 バックグラウンド対応のタイマーを作る際、タイマーが停止〜再起動、の時間を求めるのに役立ったので備忘録で残す。 参考:[Tips] Calendar を使用して日付の差や時間の差を求めるには? http://swift.hiros-dot…

【Swift】UITabbarを非表示にする

どうも、ねこきち(@nekokichi1_yos2)です。 UITabbarを非表示にする方法です。 ソースコード import UIKit class Tabbar: UIViewController { @IBAction func button(_ sender: Any) { //isHidden(true:非表示,false:表示) //toggle():Bool値を反転させ…

【Swift】起動時にStoryboardIDで画面を分岐

どうも、ねこきち(@nekokichi1_yos2)です。 初回起動、もしくはログイン状態で表示する画面を分岐する処理を備忘録として書き残します。 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.Connec…

【Swift】SVProgressHUDが中央に表示されない問題

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、SVProgressHUDの不具合について。 普通にポップアップを表示しても、中央に表示されず、画面端に表示されてしまいます。 解決法は、現在のウィンドウを取得する、だそうです。 AppDelegateでUIwindowを…

【Swift】UICircularProgressRingでタイマーを作る

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、UICircularProgressRing、で”プログレスバーを搭載したタイマー”を実装する。 ↓ github.com (参考) ↓ qiita.com 完成 解説 ソースコード 完成 解説 UICircularProgressRingでは、 UICircularProgressR…

【Swift】SideMenuでサイドメニューを作る

どうも、ねこきち(@nekokichi1_yos2)です。 今回は多くのアプリで使われている、サイドバー/サイドメニュー、を下記のライブラリで実装します。 ↓ github.com (参考) ↓ qiita.com kimagureneet.hatenablog.com 解説 準備 実装 - ViewController 実装 - T…

【Swift】tableViewで無限スクロールを実装してみた

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、tableViewで無限スクロール、を実装。 解説 ソースコード 結果 解説 仕組みは スクロール開始 (num.count -10)番目の要素が表示された numにnumの全要素を追加 スクロール終了 スクロール時のnumの要…