プログラミング
Xcode 12.0 beta 2 (12A6163b) の iOS platform の Frameworks の中をみると $ cd /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks $ ls ARKit.framework AVFoundatio…
免除される暗号のみを使用しているのに App Store Connect でアップロードごとに毎回、暗号に関する質問を答えるのが面倒。 その場合は、 Info.plist に以下を追加する。 <key>ITSAppUsesNonExemptEncryption</key> <false/> これでアプリには免除されていない暗号を使用してい</false/>…
iOS / Android のローカライズ文字列ファイルを一括で生成するツールstrgen(Python)を作った。 PyPI に登録してあるので、 pip でインストールできます。 PyPI : https://pypi.org/project/strgen/ GitHub : https://github.com/daisuke-t-jp/strgen 概要 …
Python パッケージ作成、PyPI(パイ・ピーアイ) への登録などに役立つ情報を、まとめる。 setup.py だけ使用するパターン、setup.cfg も使用するパターン、__init__.py に多くの役割を持たせるパターン/ほとんど役割を持たせないパターン、などパッケージ作…
everysing というカラオケのアプリで、読み込み中に表示されるインジケーターがパラパラ漫画のようになっていて、キュートな感じがしてよい。(マイクやヘッドフォンのアイコンが表示される) この UI を再現したく、パラパラとアニメするインジケータを作っ…
https://developer.apple.com/jp/system-extensions/ macOS 10.15 から、従来のカーネル拡張(KEXT)を使わずに、ユーザーランドで動作するソフトでシステムイベントを監視(おそらくイベントの許可/禁止も)できるようになった。 https://developer.apple.c…
GitHub Actionsの支払いについて - GitHub ヘルプ Public リポジトリ GitHub Actions の制限はない Private リポジトリ GitHub Actions の実行時間とストレージに制限がある。 アカウントに存在するすべての Private リポジトリの実行時間、ストレージ使用量…
これは 2020/05 時点の情報をもとにした記事なので、最新では事情が変わっている可能性を留意すること。 ワークフロー内で使用できる環境変数 環境変数の利用 - GitHub ヘルプ たとえば GITHUB_REPOSITORY(所有者とリポジトリの名前 octocat/Hello-World な…
GitHub ワークフローを使ってプロジェクトの定期実行→成果物をデプロイする方法を調べたのでまとめる。 これは 2020/05 時点の情報をもとにした記事なので、最新では事情が変わっている可能性を留意すること。 目的 GitHub ワークフロー / アクションの意味…
DuckDuckGo Privacy BrowserDuckDuckGo, Inc.ユーティリティ無料 DuckDuckGo の iOS アプリで「Find In Page(ページ内検索)」で日本語が入力できない現象があったので、原因を調べて修正した。 DuckDuckGo は iOS / Android 共にオープンソースなので、第…
TensorFlow(テンソルフロー) や iOS でのサンプル実行の方法を調べたメモ。 https://www.tensorflow.org/lite?hl=ja iOS で TensorFlow を動かすには TensorFlow Lite を使用すると良い。 TensorFlow Lite はモバイルや組み込みデバイス向けにチューニング…
pod install / update をいままで何となく使っていたので、違いを調べる。 https://guides.cocoapods.org/terminal/commands.html コマンドのマニュアル↑をみると install Podfile.lock に記載されているバージョンで、依存関係をインストールする update 古…
SwiftUI で GoogleAds のバナー広告を表示するサンプルを作った。 方法としてはまず GADBannerView を表示する UIViewController を用意する。 class GADBannerViewController: UIViewController { let bannerView = GADBannerView(adSize: kGADAdSizeBanner…
https://developers.google.com/admob/ios/banner 2020/04/29 時点で、サンプルコードが以下になっているが func addBannerViewToView(_ bannerView: GADBannerView) { bannerView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(banne…
https://github.com/daisuke-t-jp/SwiftCurrencyTextFieldSample Swift のテキストフィールドで入力した数値を「金額(円)表記」するサンプルを作ってみた。 ユーロ(€),ドル($) ならば、小数点の考慮も必要だが、日本円ならばこんな感じで。。
URLRequest のリクエストがタイムアウトになった時の動作をみたい時がある。 そういう時は URLRequest の initializer で timeoutinterval をとても小さな値(たとえば 0.0001 秒とか)にすると、タイムアウトを発生させて、動作を試すことができる。 こんな…
iOS アプリでキーボードが表示されたイベントを知りたい時に UIResponder.keyboardDidShowNotification を通知を受ける。 コードは以下のたとえば下のようになる。 import UIKit import os class ViewController: UIViewController { override func viewDidL…
https://github.com/daisuke-t-jp/overpass_weather 今回作成したプロジェクトは GitHub に置いた。 概要 OpenWeatherMap API を使うと、呼び出し頻度の制限はあるが、無料で天気情報を取得できる。 https://openweathermap.org/ この取得する天気情報を、意…
iOS 13 SDK の時点では UIKit の UIEdgeInsets には zero プロパティがあるが https://developer.apple.com/documentation/uikit/uiedgeinsets/1624518-zero SwiftUI の EdgeInsets には zero プロパティが無い https://developer.apple.com/documentation/s…
サンプルは GitHub にある。 List の高さが項目に対して、ちょうどフィットされていないと以下の課題が発生する List の高さが項目表示に足りない -> List 内スクロールが発生する List の高さが項目表示より大きい -> List が大きすぎて、見た目が悪い これ…
blurhash という興味深い OSS を発見したのでメモ。 「画像」から「ブラー画像」を作るための「ハッシュ値」を作成できる 「ハッシュ値」から、ブラー画像を作成できる イメージはこんな感じ。 で、これは何に使うかと言えば、たとえば「アプリがサーバから…
OSM データの読みだしには Overpass API というのがあり、それを介してデータを取得することができる。 手取り早くこれを試すには GUI で Overpass API を試せるサイトがあるので、これを使ってみる↓ https://overpass-turbo.eu/ この左側に以下のクエリを書…
SwiftUI の View に多数の Circle を表示して、雨っぽいアニメーションを作った。 UIView の drawRect をオーバライドしなくてもこのくらいはできるんだなあ。。
SwiftUI で UIView の内容を画像(UIImage)にして、アルバムに保存するサンプルを作った。 SwiftUI は現在の View を直接 UIView として扱うことは難しいので UIApplication 経由で UIView を取得する感じになる。 extension UIView { func image() -> UIIm…
SwiftUI iOS 13.3 で ScrollView 上に List を配置する その List から NavigationLink で遷移する を試すと、項目の選択が残ったままになる。 再現させる最小限のサンプルを GitHub においた↓ iOS 13.2 の時点で発生していたんだけど、 iOS 13.3 になっても…
SVN の GUI クライアント(たとえば TortoiseSVN)を使うと、簡単に SVN 操作をできる。 しかし、複数の SVN ワーキングコピーに対して一括で操作したい場合、ひとつひとつ手作業をすると手間になる。 具体的には複数の SVN ワーキングコピーに対して、以下…
SwiftUI TextField の onEditingChanged() を使ってみるサンプル。 今回のサンプルは 2つの TextField の入力を足し算するが TextField 編集中は、=(イコール)ボタンが押せない、という設定で試してみた。 初期状態 ボタンは押せる 編集開始した状態 ボタ…
SwiftUI の NavigationView の Push(進む)と Pop(戻る)をユーザのアクションではなく、コードで(pragmatically)実行する調査をしたサンプル。 サンプルはボタンアクションで Push/Pop するが、この調査結果により、コードで Push/Pop 実行できることが…
SwiftUI で NavigationLink の有効/無効の切替サンプルを作った。 ざっくりいうと NavigationLink は hidden にしておいて直接操作させず、代わりに Button のアクションを一枚噛ませて NavigationLink がアクションする、という流れにするとできた。 Naviga…
入力したい TextField にタッチする→表示されたキーボードにより TextField が隠れる→入力しづらい という問題。 これは Objective-C 時代からあり、よく対処されてきた問題なのだが SwiftUI の場合は、 GitHub にある KeyboardObserving という OSS で対応…