iOS 13 SDK 気になったところ
SwiftUI
UI 開発がしやすく
RealityKit
拡張現実。
VisionKit
入力ソース(画像、カメラ)に対してアルゴリズムを適用するフレームワーク。 CoreML と組み合わせて使える。 Open CV や Machine learning を導入しなくてもある程度の画像認識が簡易にできるフレームワーク、というイメージ?
例えば、カメラを使用したテキスト解析ができる(OCR)。 今までは iOS の文字解析は Tessaract など外部ライブラリを使用していたが、公式で追加された。
動物の検出。
人間の領域を得る。
MapKit
ズームレベルの範囲が設定できるようになった。 マップの表示範囲の変更をデリゲートして監視して・・・みたいのはしなくてよくなる。
macOS Catalina
iOS ではないが、次の macOS のメジャーバージョンは Catalina(カタリナ)。 合衆国カルフォルニアには、サンタ・カタリナという島があるみたい。
また、 iPad アプリをこの macOS 以降動作させることが可能になる。 このプロジェクトの名前は、 Catalyst Project。
対象デバイス
iPhone 5s, iPhone 6, iPhone 6 Plus 対象外。 プロセッサで言うと A9 以降?
映画『AKIRA』の感想
- 出版社/メーカー: ジェネオン・ユニバーサル
- 発売日: 2011/06/22
- メディア: Blu-ray
- 購入: 8人 クリック: 845回
- この商品を含むブログ (50件) を見る
1988年の映画だが、古さを感じ無い。
当時の近未来(2019年)を描いた SF 作品。
すごく良い。
映像
サイバーな雰囲気
- ネオン
- スラム
- バイク
- 漢字
丼物をだす屋台は出てこない
色の使い方が印象的
赤
- 「AKIRA」の題字
- 金田のバイク
- 金田のジャケット
- 金田のシャツ(ピンク)
- 鉄雄のマント
- 甲斐のネクタイ
オレンジ
- レジスタンスグループが作業員に扮する時の服
- 保存されている「アキラ」
- 金田が拾って使うレーザーガン
灰色
- 人工物
- くず鉄。スクラップ。
- 壊れる、やくに立たない建造物、ビル、橋
緑
- 空
音楽
キャラクター
- 大友克洋の描くキャラクターは「鼻」がハッキリ描かれていて
- いわゆるアニメアニメな美男美女ではなく
- ほどよく現実味があるリアルな顔立ちで
- それによりアニメのキャラクターが「記号化」しておらず
- 「ひとりひとりの登場人物」の表情をみているだけで、面白くなる
ストーリー
- SF なのだが
- 腕力の強い偉そうなガキ大将と
- そのガキ大将にいじめから助けてもらった子供
- という誰でも共感しやすい普遍的な人間関係をベースに
- 話が進んでいくので、それが SF としては奇妙な感じもするが
- おかげで話はわかりやすい
- 人が暴行されたり、死んだりするシーンが多い映画だが、あまり暗い雰囲気にはならない
- それは主人公?の不良少年が
- 明快な性格で
- 一目惚れした女性を口説いたり
- ドジを踏んだり
- 仲間を守ったりする
- 愛嬌があるキャラクターなので
- 映画の途中途中での彼のシーンで一旦緊張がブレイクされる
- そのため、残虐シーンもあるが、暗すぎたり、悲痛すぎたり、にならない
- 最後まで映画を苦なく観続けられるバランスに作用している
セリフ
セリフが印象的で世界観のオリジナリティに一役かっている。
以下、好きなセリフ。
- ピーキーすぎてお前にゃ、無理だよ
- 指導! 指導! 指導! 指導! 指導! 指導! 以上!
- 健康優良不良少年
- おめェもボスになったんだろぉ? この瓦礫の山でよぉ
- 金田ぁあああ!
- 「さん」をつけろよデコスケやろう!
調べたら、やはりこのセリフ自体の趣向に需要があるみたいで、LINE スタンプがあるみたいだ
おわりに
- 個人的にこれは観ていないと、損だな、と思った映画
- この記事内で使用している画像は Adobe Photoshop で作成した
- AKIRA という字は Impact (typeface) - Wikipedia フォントで書くと近い感じ
Android アプリ「弥勒菩薩タイマー」をリリース
遠い未来にこの世界を救済してくれる弥勒菩薩(マイトレイヤー)が、いつ現れるかを計測するタイマーアプリです。
ちなみに、弥勒菩薩がいつ救済するのかについては、図書館が調査した結果もあったりします。
釈尊の死後、56億7千万年後に弥勒菩薩が衆生を救済するという話の出典が知りたい。 | レファレンス協同データベース
Swift でローカルスコープを実現する
_ = { () -> () in // ... }()
もしくは
do { // ... }
後者の方が簡潔。
C言語で医療費控除額を計算する
コード
医療費控除の額がよくわからなかったので、C言語でコードを書いて試してみた。
GitHub にもある。
#include <stdio.h> #include <math.h> #include <assert.h> static int get_medical_expenses_deduction(int payed, int insurance, int income); int main(int argc, const char * argv[]) { // テスト assert(get_medical_expenses_deduction(200000, 0, 3000000) == 100000); assert(get_medical_expenses_deduction(200000, 50000, 3000000) == 50000); assert(get_medical_expenses_deduction(1000000, 0, 3000000) == 900000); assert(get_medical_expenses_deduction(1000000, 0, 1000000) == 950000); assert(get_medical_expenses_deduction(1000000, 0, 0) == 1000000); return 0; } /** * 医療費控除額を得る * * @param payed その年に支払った医療費 * @param insurance 保険金などで補填される金額(生命保険など) * @param income その年に得た総所得 * * @return 医療費控除額 */ static int get_medical_expenses_deduction(int payed, int insurance, int income) { static const double income_coe = 0.05; // 総所得にかける係数 static const int income_border = 2000000; // 総所得の閾値 static const int default_val2 = 100000; // 控除から引くデフォルトの値 static const int deduction_max = 2000000; // 控除の最高額 // 基本となる控除額を算出する int val = payed - insurance; if(val < 0) { val = 0; } // 控除から引く額を算出する int val2 = default_val2; if(income < income_border) { // 総所得が閾値未満 // -> 総所得に係数をかけた額を使用する val2 = ceil(income * income_coe); } // 控除額を計算する int deduction = val - val2; if(deduction > deduction_max) { deduction = deduction_max; } if(deduction < 0) { deduction = 0; } return deduction; }
参照
InterfaceBuilder を使用せずにコード内で UIButton のアクションをバインドする
ある UIButton に対して TouchUpInside のイベントにアクションをバインドしたいとき、インターフェースビルダーを使わずに、コードで実現すると下のようになる。
@IBOutlet weak var button: UIButton! class ViewController: UIViewController { override func viewDidLoad() { button.addTarget(self, action: #selector(buttonAction(sender:)), for: .touchUpInside) } @objc func buttonAction(sender: UIButton) { // アクションを書く! } }
Mac の性能がよくなく、インターフェースビルダーの動きが緩慢な場合は、インターフェースビルダーの使用は最低限アウトレットだけのバインドだけに留めて、アクションなどはコードで設定すると、作業がはかどる。