iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

2021-08-01から1ヶ月間の記事一覧

ブログしばらくお休みします

一年ちょい毎日続けてきたブログですが、エンジニアリング以外の領域の勉強を行うため、しばらく休業いたします🏃‍♂️ また、エンジニアリング領域の記事を書く機会があれば更新するので、その時は何卒よろしくお願いします!

next/routerの関数メモ

本日は、next/routerの関数についての軽いメモです‍♂️ 関数たち push 任意の画面に遷移するために使用します。next/linkによる実装が不十分な時などに使用できます。 router.push(url, as, options) replace 機能的にはpushと同じですが、replaceは遷移時、…

履歴スタックについて少し調べた

Web

Webブラウザの履歴スタック??っとなったので軽くメモ 履歴スタックとは? ユーザが訪れたページなどをブラウザのウィンドやタブごとに管理するもののことを指します。 また、macなどでは⌘ + 左右矢印などで、ページの前後に移動することができますが、この…

【TypeScript】返り値を型としてあつかう

下記のような関数の、返り値の型をつくるためのメモです🏃‍♂️ const hoge profile = () => { return { name: "Yamato", age: 23 } } 結論 ReturnTypeというものを使って、返り値を型に変換することができるようでした。 type Profile = ReturnType<typeof profile> ちなみに、</typeof>…

AutoLayoutでtargetの比率で高さを計算

本日は初学者向けに、targetとなるViewのサイズに応じて、サイズを計算するAutoLayoutのメソッドを紹介します‍♂️ 結論 constraint(equalTo:, multiplier:) で下記のように設定することができます。multiplierにはequalToでしていしたサイズに対する割合を設…

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Fatal: supplied identifiers are not unique.' 対処法

UICollectionViewDiffableDataSourceをつかっていた際にタイトルのエラーが発生したので、対処法をかるくメモ 今回エラーが発生したのは、セクションの情報を追加するときの処理です。 var snapshot = dataSource.snapshot() snapshot.appendSections(newSec…

【Swift】UICompositionalLayout + Diffable Data Source 時の再描画処理

再描画時にcollectionViewLayoutを入れ替えて、dataSource.apply(snapshot, animatingDifferences: false)なんてことをしていたが、なんかデータのリフレッシュタイミングでIndex out of rangeになると思ったら更新の仕方が大きく勘違いしていたので軽くメモ…

【Git】コンフリクトした際にどちらかの変更を全面的に取り入れる

git

stash pop でコンフリクトした際に、どちらか一方の変更を適用するのどうやるんだっけ?っとなったので軽くメモ 結論 現在チェックアウトしているブランチの変更を適用する場合は、下記のようにcheckout --oursを使用します。 $ git checkout --ours Hoge.sw…

【CSS】height:100% が効かん!

CSS

特定の要素をブラウザ画面の高さで表示したい時に、CSSで指定したheight: 100%が効かなかったので、メモ 結論 下記のようにhtmlとbody要素にheight: 100%を設定することで、ブラウザ画面から相対的に高さを計算することができるようになります。ちなみに、一…

htmlのbutton無効時のカラー調整

CSS

結論 cssからbutton:disabledで無効時のデザインを設定することができます button:disabled { border: 1px solid #999999; background-color: #cccccc; color: #666666; } ちなみに、ホバー時やボタン押下時なども同様に設定できます. button:hover { border…

【Swift】Array to Dictionary メモ

ArrayからDictionary変換したい時って、どうやったらシンプルにできるんだっけ?っていうのを忘れていたのでメモ‍♀️ 結論 reduce使えばええやん ちなみにクロージャの引数になるdictは定数なので、新しい変数を作ってデータを追加していく必要があります。 l…

【Swift】Viewの一部だけを角丸にしたい

結論 右下を角丸にする場合は、下記のように指定することで一部を角丸にできます。コードを見ればわかるように、maskedCornersは配列で指定することができるので、角丸にする部分を組み合わせることもできます。 view.layer.cornerRadius = 10 view.layer.ma…

【Xcode】imageやcolorをソースコード上に表示するTips

本日はXcodeの小ネタです imageやcolorをソースコード上に表示する Xcode8によって追加された機能により、ソースコード上にimageやcolorを表示しながらセットすることができます。 この機能はImage LiteralやColor Literalを選択することで、下記のように使…

【Swift】Cellをコードベースで構築する際にやらかした

久しぶりにUICollectionViewCellの実装をコードベースで行ったら、初心者みたいなやらかしをしたのでメモ‍♀️ やらかし やらかしの一部がこちら。そうです、動的にCellの高さが変わるような場合に、Cellが再利用されるタイミングでImageViewのframeが以前のco…

Unable to infer complex closure return type; add explicit type to disambiguateの対処方

本日はSwift初学者向けの Unable to infer complex closure return type; add explicit type to disambiguate の対処法を簡単に紹介します 結論 これはクロージャの戻り値の方をSwiftコンパイラが上手く型推論できないときに発生します。 let itemLayouts = …

【Xcode】ファイル内のメソッド検索

本日は初学者向けのXcodeの小ネタです‍♀️(ネタが、、) ファイル内のメソッド検索 ファイル内の特定のメソッドなどを検索する時は、⌘ + Fで Findナビゲーションを開いてもいいですが、ファイルナビゲーションからメソッドを簡単に探すこともできます。 ここ…

【Next】Linkを持つbuttonってどうやって作る

結論 普通のリンクの場合は、next/linkを使用して下記のように実装できます。 import Link from 'next/link' <Link href="/"> <a>hoge</a> </Link> buttonなどのインタラクティブなコンポーネントを使って遷移したい場合は、next/routerを使いましょう。 import Router from 'next/router'…

【Git】別のブランチに特定のコミットを適用する

Git

本日もGitの小ネタです‍♀️ 別のブランチに特定のコミットを適用する 例えば、hogeブランチのコミットIDhoge123をmasterブランチに適用したい場合は、masterブランチにて下記を実行することでコミットを適用することができます。 $ git cherry-pick hoge123 …

【Git】特手のコミットの差分を見てみましょう

Git

本日はgit初心者向けの小ネタで、特定のコミットの差分を見る方法を紹介したいと思います‍♀️ 結論 コミットIDを元に、git showコマンドを実行することで、コミットの差分を確認することができます。 $ git show commit_id てな感じで本日も以上となります そ…

【Swift】enumにnoneはなるべく使わない方がいいお話

本日もSwiftの小ネタになります‍♀️ enumにnoneを使う 特定のタイプに属さないタイプを表すとき下記のようにnoneという命名で、enumを定義することがあるかもしれませんが、このネームスペースはSwift.Optionalで定義してあるnoneと衝突する可能性があるので…

【RxSwift】Observableを再帰的に実行したい

Observableを再帰的に実行するサンプル実装をしたので、軽くメモしておきます もっといい書き方あったらコメントで教えてください! どんな状況? やりたいこととしては、データIDの配列からページネーションしながらIDを取り出し、そのIDを元にデータを取得…

【RxSwift】Error発生時の再度実行

Observableでエラーが発生した時の再度実行に関するメモです retry, retryWhen Observableでエラーが発生した場合、再度subscribeするには主にretry・retryWhenオペレーターが使えます。 retryオペレータはシンプルで、エラーが発生した場合に無条件でObserv…

RxSwiftのMaybeって何だっけ?

Maybeとは? success・error・completedのいずれかのイベントで、最初のイベントのみをキャプチャするObservableです。つまり、何らかのイベントが流れた時点で、Obsrevableはdisposeされます。 Singleと混合しがちですが、Singleではcompletedイベントを送…

【Xcode】Xcodeのドロップダウンメニューは基本フィルターできるんですね

本日はXcodeの小ネタです Xcodeのドロップダウンメニューはフィルターできる Xcodeでよく見る下記のようなドロップダウンメニュー。実は文字を入力するとフィルターできるらしい(知らんかった)。 こんな感じで、結構便利。 てな感じで本日は以上となります…

【Swift】ArraySlice to Array

ArraySliceのArray変換を知らんかったのでメモ👷‍♀️ 結論 Array(arraySlice)で普通にいけるらしい。 let arraySlice = items[0..<3] let array = Array(arraySlice) てな感じで短いですが、本日も以上となります🍺 その他の記事 yamatooo.blog yamatooo.blog yam…

【Swift】Arrayから特定の範囲を取り出す際に index out of range を回避する

# 結論 subscriptを使ってArrayに下記のようなextensionをはやしておくと便利です。戻り値がArraySlice<Element>?になることで、範囲外を取り出そうとした場合でもnil回避ができます。 extension Array { subscript(safe range: Range<Index>) -> ArraySlice<Element>? { if range.end</element></index></element>…