くま's Tech系Blog

基本的には技術で学んだことを書き留めようと思います。雑談もやるかもね!

スコープ関数について

kotlinにはスコープ関数というものがあります。 あるインスタンスに対して、連続して処理をするような場合、スコープ関数を使えばコードを簡潔にすることができます。(Lamba形式で処理をおこないます) スコープ関数にはlet・run・with・apply・alsoの5種…

Androidのスレッドについて

今回はAndroidのプロセスやスレッドについてまとめようと思います。 最近は非同期処理でCoroutine などが出てきたおかげで非同期処理が簡単にできるようになりました。 ただ、Coroutine などを理解する前にプロセスやスレッドについて理解する必要があると思…

Androidでビルドのターゲット分けを行う

今回は、Androidでビルドのターゲット分けを行うようにするにはどうしたらいいのかを書いていきます。 ビルドのターゲット分けというのは開発環境と本番環境など向き先を変えるとうことです。 例えば、開発環境でapkを出力したり、本番環境で出力したりと変…

Custom URL Schemeでアプリを起動する

今回はCustom URL Schemeでアプリを起動する方法を書いていきたいと思います。 iOSでは、 cm-app:// のような、アプリ固有のCustom URL Schemeを実装することで、 リンクをタップしてアプリを起動することができます。( ディープリンクとも言います) ディー…

ラベル(Text)のカスタマイズを行う【iOS】

更新なかなかできず・・・・ 定期的には更新したいと思っています 今回はiOSでのラベルテキストのカスタマイズについてです。 わかりやすいようにラベルで記載していきますが、例えば、ボタンのテキストなども同様にカスタマイズできますのでぜひ応用してみ…

iOSアプリでライセンス表示機能を作る

今回はライセンス機能についてです。 OSSのライブラリをiOSのアプリで利用している場合、使用したライブラリのライセンスをしかるべき場所に記載する必要があります。 ライブラリを追加する度にそれらを手動で更新すると手間になるので、それらをCocoaPodsの…

ライブラリをforkして使う

今回はライブラリをforkして使う方法です。 あまり使うことはないと思いますが、使いたいライブラリが更新されずに機能を追加したいけどできない場合に一部カスタマイズして使うために使ったりします。 まずは使いたいライブラリを下記をタップして、forkし…

iOSアプリのビルドのターゲット分けを行う

今回はiOSアプリのビルドのターゲット分けについて記載しようと思います。 例えば、開発環境と本番環境で処置を分けたい場合やAPIのURLを分けたい場合があると思います。 そんなときに1つのプロジェクトで複数の環境を管理するためにターゲット分けを行いま…

プッシュ通知の許可状況を確認する

今回は小ネタです プッシュ通知を許可しているかどうか知りたいときありませんか? そんなときに許可状況を確認するための実装です if UIApplication.shared.isRegisteredForRemoteNotifications { print("許可している") } else { print("許可していない") }…

apkファイルをインストールする

今回はapkファイルをインストールする方法についてです たまに開発中のものをapkファイルに渡すということありませんか? そして、渡されたものをインストールして動きを確認することはありませんか? 今回はそんなときにインストールをする方法です 大前提…

プッシュ通知を処理する

今回はプッシュ通知についてです プッシュ通知はローカル通知とリモート通知がありますが、今回はリモート通知についてです 簡単にローカル通知とリモート通知の違いを説明すると、ローカル通知はアプリ単体でアプリがフォアグラウンド以外なら通知が表示さ…

UITabBarControllerについて

iOSの開発では必須といっていいくらいUITabBarControllerは使うと思います 今回はそんなUITabBarControllerについて記載しようと思います UITabBarControllerはstoryboardで作成する方法とコードで実装する方法があるので両方説明しようと思います。(個人的…

Retrofitの基本的な使い方

今回はRetrofitの基本的な使い方について書きたいと思います。 Android開発でAPI連携を行う場合に必ずと言っていいほど使うと思います。たまにハマってしまうので、まとめようかと思います。 Retrofitは、APIから取得するJSONデータを、オブジェクトにしてア…

iOSのシミュレーターにプッシュ通知を送る

今回はプッシュ通知のテストについて書きます。 プッシュ通知のペイロードはわかっていてもプッシュ通知の機能がまだない場合ありませんか? 業務でたまたま発生してプッシュ通知のテストがシミュレーターでできることを知ったので方法をまとめたいと思いま…

UITableViewでカスタマイズヘッダーを使う

しばらく更新していないうちに年を越してしまいました。。。。。 これからはなるべく更新していく予定です 今年初の記事はUITableViewでカスタマイズヘッダーを使う方法です UITableViewではstoryboardで作成することができるのですが、下記のようにヘッダー…

エミュレーターでネットに接続する

今回は小ネタです。 以前、エミュレーターでインターネットに接続できずなぜ?と思ったことがあります。 デフォルトでAndroid WifiというWifiに接奥されていますが、設定をしないとインターネットに接続できないようです。 早速みていきましょう! まずはエ…

Contextについて

今回はAndroidでよく出てくるContextについて説明しようかと思います。 ContextはAndroidでよく出てくると思うのですが、漠然としたものでフワフワしていたので、少し調べてみました。 Contextとは? Contextを公式で確認すると下記のような記載があります。…

Xcodeのショートカット集

今回はXcodeのショートカットをまとめようかと思います。 なぜ、この記事を書こうかと思ったのかというと、ショートカットを使うことで開発が効率的に進められることを体感したからです。 最近、ペアプロを体験して、相手の開発をみる機会がありました。 そ…

Optional型について

Swiftだけではないですが、SwiftにはOptional型という特徴的な型があります。 今回はそんなOptional型についてお話しできたらと思います! Optional型とは Optional型とは通常の値とは別にnullをとれる型です。 他の言語ではString型やInt型といった通常の型…

Comuputedプロパティについて

swiftは他の言語とは少し違い、基本的にはgetter/setterが必要ない言語です。 ただ、設定するときに値を加工したりする場合はComuputedプロパティというものがあります。(名前は最近知りました) 今回はそんなComuputedプロパティについて説明しようかと思い…

NavigationBarの下にオブジェクトが隠れるのを防ぐ

今回は小ネタです。 最近出くわしたNavigationBarの下にViewが隠れてしまうのを回避する方法です。 iPhone8では大丈夫だったのですが、iPhone Xsでは思いっきり隠れていました。 Viewの位置をソースコードで定義していたので、iPhone Xsのバージョンの位置を…

Xcodeでのオブジェクトの上下配置について

今回はStroyboardでオブジェクトを配置するときに少しつまずいた上下配置について説明しようと思います。 オブジェクトの配置 XcodeではStroyboardでオブジェクト(ここではViewやボタンなどのパーツのこと)を配置して画面を作ります。 ソースコードでUIを作…

クロージャーの[weak self]について

今回は、クロージャーの[weak self]について書いていこうと思います。 なぜこんな書き方をするのか調べてみると、クロージャーがselfを弱参照し、クロージャーとselfの循環参照を防ぐとの記載がありました。 これを見て??って思いよくわからなかったので、…

値型(struct)と参照型(class)について

今回はタイトルにもある通り、値型と参照型について説明していきます。 プログラミングの基礎的な概念だと思うので、理解しといて損はありません。 今回はSwiftで説明していきたいと思います。 値型 まずは値型について説明します。 値型は変数の中に実際の…

技術書典9を終えて

9/12(土)〜9/22(火)まで行われた技術書典9が終わったので振り返りたいと思います。 今回初めて1人で「モバイル詰め合わせ」という本を執筆して販売しました。 大したことを書いたわけではないから全然売れないだろうなあと思っていたのですが、終わってみる…

技術書典9にサークル参加しました

今回は告知をさせてください!! 初めて1人で技術同人誌を書きました。 そして、昨日(9/12)から始まった技術書典9というオンライン即売会で販売しています。 表紙を作る難しさを今回初めて痛感して、電子版のみの販売としています。(デザイナーに依頼す…

【Mac】VSCodeのショートカットまとめ

今回はVSCodeのショートカットをまとめたいと思います エディタと言えば、VSCode(Visual Studio Code)であったりAtomやサクラエディタ等を思い浮かべると思います 私はVSCodeをよく使うのですが、VSCodeは無料なんですが個人的にはクオリティが高く、拡張機…

忘れやすいiOSの証明書関連を思い出す

iOS

PCを変更したことでせっかくなので、証明書を作り直してみました 意外に忘れてしまっていたので(年に1回くらいなので)、メモのために今回記事を書きます ①証明書生成 まずは、証明書生成を行います Macのアプリケーション→ユーティリティ→キーチェーンアクセ…

SwiftUIでjsonデータを取り扱ってみる

今回はjsonデータを使って画面表示を行ってみたいと思います APIを使って戻り値のjsonデータをパースして値を取得するというのはモバイル開発では必ずと言っていいほどやる処理だと思うので、学んでいきます!! jsonデータの準備 今回は実際にAPIを使ってで…

SwiftUIで画像にいろいろ手を加えてみる

以前、SwiftUIでテキストを配置したり色を変更したりしました 今回は画像にいろいろ手を加えるというのをSwiftUIで試してみたいと思います まずはリソース(画像)を追加します 画像の追加 この画像を表示させるためにはImageの引数に画像のリソース名を指定す…