program

A collection of 10 posts
Xcode11 の Single View App をiOS12以前に対応させる
xcode

Xcode11 の Single View App をiOS12以前に対応させる

Xcode11で Single View App を Swift Storyboard の設定で作成して、iOS10系以降をサポートする設定にした。 ビルドすると沢山エラーが出た。 AppDelegate.swift と SceneDelegate.swift で、iOS13からavailableになったクラスが使用されているため。 赤丸が点いた箇所、画像の AppDelegate.swift ではfuncの宣言箇所で @available(iOS 13.0, *) を書く(赤丸をクリックすると自動で挿入してくれる)。 SceneDelegate.swift は class SceneDelegate 自体がiOS13以降のサポートとなるのでこうなる。 これでビルドに成功するようになる。 iOS12系の実機で実行するとコンソールに以下のメッセージが表示され、実機の画面は真っ暗になる。 2019-10-02 02:28:28.466280+0900 Demo[495:13067] [Application] The app del
2 min read
Mac

macOS Sierra にフォントRictyを入れた

手順の大枠はhttp://www.rs.tus.ac.jp/yyusa/ricty.htmlの通り 1. fontforgeのインストール $ brew install fontforge 2. 使用するフォントをインストール inconsolataのインストール https://fonts.google.com/specimen/Inconsolata GoogleのページなのでAndroidっぽいUIだなって思いました。緑の枠を順にクリックするだけでダウンロードできます。 ダウンロードが完了したらzipファイルを展開してFont Bookにインストール。 3. Migu 1Mフォントのインストール http://mix-mplus-ipa.osdn.jp/migu/ こっちは特に問題ないデザインというか。Rictyでページ内検索するとすぐにダウンロード用リンクが見つかります(2017/1/18現在)。 zipファイルをダウンロードしたらInconsolataフォント同様Font Bookにインストール。 4. フォ
1 min read
objc

Date型の比較@ObjC/Swift

Date型の比較をするとき、多くの場合は"2016-12-09"とか"2016-12-09 10:00:00+0900"とか、年月日か年月日と時分秒までの比較が多いのかなと思いますが。 Objective-C -[NSDate earlierDate:]と-[NSDate laterDate:]が使えるので、挙動を理解していればそれがラクかなと思いますが、可読性を考えると[NSDate compare:]で比較した方がわかりやすいときもあるかもしれない。 -[NSDate earlierDate:]と-[NSDate laterDate:]は自身とanotherDateの値が等しい場合には自身の値を返すことだけ覚えておく必要がある。(なのでログ出力ではポインタを吐いている NSDateFormatter *df = [[NSDateFormatter alloc] init]; df.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"
1 min read
ios

iOS10ライフサイクル

先日Xcode8のフレームがどうのって記事を書いたんですけど、そんなことよりライフサイクルだな。と思ったのでシーケンス図風のものを書き出しました。png貼ってますがサイズ大きめです。参考程度に。上から下へ処理が進んで行きます(意味わかるよね? 今回使ったアプリ 確認した内容はこんな感じ + AppDelegate | | | + UINavigationController | | | +-+ UIViewController | | | +-+ UIView(UIViewController.view | + Notification * Storyboard使って、画面遷移などはしていないです * UITabBarControllerも使っていないです(ライフサイクルが結構かわるのですごく長くなるから 起動 その他バックグラウンド/フォアグラウンドなど その他 * バックグラウンドに移行する ≠ フォアグラウンドではなくなる(アプリが見えなくなる) * バックグラウンドに移行したかどうかは did
1 min read
ios

Xcodeでコードを書かずに角丸のボタンを作る

タイトルの通り、プログラムらしいことをしないで角丸ボタンを表示する 手順 1. 角丸画像を用意する 2. XcodeのAssetに画像を追加する 3. 画像のスライス設定で可変領域を設定する 4. 角丸画像を表示したいボタンの背景画像(Background image)に設定する コードで実装する 覚えてたら後で書く その他 動画のアップロードがイケてない。youtubeとかじゃないとうまくいかないのかも。
ios

iOS8,9の違いを幾つか その1

次があるかわかりませんが、その1。 UIView Class 再描画でよく使われるメソッド - (void)layoutIfNeeded; 深度が違うようです。iOS9だと再帰的に適応されるようですが、iOS8だと深度が1か2か。 再描画されないなーということがありました。 気づいた時はframeの変更をしようとした時でした。 NSLocale Class - (NSArray<NSString *>*)preferredLanguages 出力する。 NSLog(@"%@", [NSLocale preferredLanguages]); iOS8系 ( ja, en, "zh-Hans", de ) この設定をしているiPhone(4S iOS8.3)のSS iOS9系 iOS9.0 実機で確認したところiOS8系と同じでした。 iOS9.1 ( "ja-JP", "en-JP&
1 min read
python

Pythonのエンコードを宣言する

Pythonでファイルのエンコードを宣言するとき # -*- coding: utf-8 -*- こういった内容を記載する人が多いと思いますが、自分にはこの記法には疑問がありました。 なぜEmacsを使わない人たちがEmacsのエンコードを宣言をするのだろうか。 会社ではEmacsを使うのは自分だけなので、もしかしたらこの記法がPythonのエンコード宣言だと思っているのかもしれません。 Vimではこう書く(らしい)です(Vimはほぼ使わないので知りません # vim:fileencoding=<encoding-name> Pythonのリファレンス 英文 If a comment in the first or second line of the Python script matches the regular expression coding[=:]\s*([-\w.]+), this comment is processed as an
1 min read
program

Xcodeでメソッドにコメント書く

コメントは大事 例えばこんな感じで書くと色々と便利。メソッドだけじゃなくてプロパティとかただの変数でもいい。 /** @method increment: @param i NSInteger 数値 @return 引数iをインクリメントして返す 引数iをインクリメントして返すお仕事 */ - (NSInteger)increment:(NSInteger)i { return ++i; } 気をつけること 1. コメントは/*!ではなく/**で始めた方がいい。Swiftで/*!が無視された(今は違うかも? 2. 説明を書くときは空行を入れる、もしくは@discussionを使う この2つくらい。 使い方 コメントを書いたメソッドをクイックヘルプ(オプション+左クリック、もしくはコントロール+コマンド+ハテナ)するとこうなる(メソッドを呼び出す箇所でも同じ)。 しかしここまで書くのはめんどくさいし、そもそもクイックヘルプを表示するとかダルい。 どうせならメソッド打つときの補完と同じように大事な部分だけ表示できれば十分
1 min read
objc

iOS用にユニバーサルライブラリを作る

BlocksKitをフレームワーク化した iOS8対応のためBlocksKitをフレームワーク化したログ。 ソースコードのまま組み込むとかイヤなのでよく外部のライブラリはフレームワークにしているのでメモ。 手順 ダウンロードからビルドまで * github から最新ソースコードをダウンロード * ターゲットをBlocksKitにしてiOS Device用Releaseビルド * ターゲットをBlocksKitのままiPhone Simulator用Releaseビルド * OrganizerでBlocksKitのDerived Dataディレクトリ右の->をクリックしてFinderに表示 以下コマンドライン ターミナルのログからひっぱり出したコマンドなので間違ってる可能性は否定できない。 $ cd <Derived Data Dir> // FinderからD&Dでpathが貼り付けできるのでそれがらく) $ xcrun lipo -info ./Release-iphoneos/libBlocksKit.a Architectures in
1 min read