文字っぽいの。

文字を書いています。写真も混ざります。

iOS 12でOpenGL ESがDeprecatedになったので、Metalを使うにはiOSいくつ以降をサポートすれば良いのか調べた。

結論

  • iOS 11以降のサポートにすればよい
  • iPhone 5, iPhone 5c, iPad(4th) がMetal非対応だがiOS 10がインストール可能になっている
  • Apple公式的には最新2つのメジャーバージョンのサポートを推奨している
  • iOS 12が落ち着いたらiOS 10のサポート終了を準備しながらMetalの実装をすると良さそう
  • もしくはiOS 10をサポートしつつ、特定デバイスでは「ごのデバイスではこのアプリはご利用いただけません」的な表示をする手もある

各デバイス便利表

iPhone

バイス 発売年 Metal 解像度 @Nx iOS 8 iOS 9 iOS 10 iOS 11 iOS 12
iPhone 4S 2011 × 640 x 960 @2x × × ×
iPhone 5 2012 × 640 x 1136 @2x × ×
iPhone 5c 2013 × 640 x 1136 @2x × ×
iPhone 5s 2013 640 x 1136 @2x
iPhone 6 2014 750 x 1334 @2x
iPhone 6 Plus 2014 1242 x 2208 @3x
iPhone 6s 2015 750 x 1334 @2x -
iPhone 6s Plus 2015 1242 x 2208 @3x -
iPhone SE 2016 640 x 1136 @2x -
iPhone 7 2016 750 x 1334 @2x - -
iPhone 7 Plus 2016 1242 x 2208 @3x - -
iPhone 8 2017 750 x 1334 @2x - - -
iPhone 8 Plus 2017 1242 x 2208 @3x - - -
iPhone X 2017 1125 x 2436 @3x - - -

iPad

バイス 発売年 Metal 解像度 @Nx iOS 8 iOS 9 iOS 10 iOS 11 iOS 12
iPad 2 2011 × 768 x 1024 @1x × × ×
iPad mini 2012 × 768 x 1024 @1x × × ×
iPad (3rd) 2012 × 1536 x 2048 @2x × × ×
iPad (4th) 2012 × 1536 x 2048 @2x × ×
iPad Air 2013 1536 x 2048 @2x
iPad mini 2 2013 1536 x 2048 @2x
iPad Air 2 2014 1536 x 2048 @2x
iPad mini 3 2014 1536 x 2048 @2x
iPad mini 4 2015 1536 x 2048 @2x - ◯|◯
iPad Pro (12.9 1st generation) 2015 2048 x 2732 @2x -
iPad Pro (9.7) 2016 1536 x 2048 @2x -
iPad Pro (10.5) 2017 1668 x 2224 @2x -
iPad Pro (12.9 2nd generation) 2017 2048 x 2732 @2x -
iPad (2017) 2017 1536 x 2048 @2x - -
iPad (2018) 2018 1536 x 2048 @2x - - - ◯|◯

iPod Touch

バイス 発売年 Metal 解像度 @Nx iOS 8 iOS 9 iOS 10 iOS 11 iOS 12
iPod touch (5th) 2012 × 640 x 1136 @2x × × ×
iPod touch (6th) 2015 640 x 1136 @2x

Comparable#clampがSwiftにも欲しいので作った

Comparable#clamp という便利メソッドを知った。

blog.bigbinary.com

いままではこう書いていた

let number = 100
let lowerLimit = 0
let upperLimit = 20
min(max(lowerLimit, number), upperLimit) // => 20

Swiftにもほしいと思って調べたけど、Rangeの clapmped ってのだけ出てきて見つからなかったので書いてみた。

extension Comparable {
    func clamp(to limits: ClosedRange<Self>) -> Self {
        return min(max(limits.lowerBound, self), limits.upperBound)
    }
}

これを定義しておくと最初のコードは

let number = 100
number.clamp(to: 0...20) // => 20

と書けて便利。

もうちょっと良い書き方とかあったら教えてもらえると喜びます。

「ずるい」ではなく「いいなぁ」って言うとすべてが上手くいく

気がする。

子供のしつけで「ズルいわけじゃないんだよ」って教えるってのよく話題になる気がする。そもそも「ずるい」って

《形》人をだしぬいて自分が得をするような、正しくないやりかただ。わるがしこい。こすい。

という意味なので、ネガティブなんですよ。あいつは悪事を働いて不当に利益を得ている的な。だから「ずるい」って言われると「これは正当な権利でウンヌン」って説明から入るじゃないですか。マイナスイメージをゼロにしてから、じゃあ全員をプラスにするにはって話をしないといけない。これはすごいコストがかかって、だいたいマイナスをゼロにして「あー、疲れた」ってなって終わってしまう。

「いいなぁ」って会話から始まると、ゼロからプラスにする建設的な話がしやすい気がするんですよ。気がするだけだけどね。

「新卒が今の発言をしても許されるか?」という基準で自分の発言を鑑みる

3年も働いていると地位や信頼値にも変化があり感覚が鈍ってくるので、思考ゲームをして遊んでいる。

  • 自分の立場に甘んじた発言をしていないかが分かる(ときがある)
  • 覚悟をもって発言しているかが分かる(ときがある)
  • もし新卒がその発言ができない場合、心理的安全性が確保されていないと分かる(ときがある)

遊びです。当然ですが、発言の内容にもよります。

『吉田類の酒場放浪記』で紹介されたお店をGoogle Mapにまとめました。

こちらをご覧ください。

そうです。酒飲みが愛する情報番組である『吉田類の酒場放浪記』は、最高便利なのです。最高便利なの番組の情報がもっと簡単に使えるように、えっさほいさとGoogle My Mapにまとめたので共有します。

drive.google.com

このマップを使えば、どんな駅に降り立っても酒を楽しむことができます。ご自由にご利用ください。

備考

吉田類の酒場放浪記はHuluで見ることができます。

www.happyon.jp

掲載内容に問題がある場合は、ご連絡お願い致します。

静岡は浜松に行ってきた。

大学時代の友人たちと浜松に行ってきた。

忘年会か新年会をする予定だったのだが、予定が合わずに、浜松(東京と大阪の中間ぐらいだし)に集まって飲もうという事になった。

浜松はうなぎ以外にもすっぽんが有名らしいので、1日目の昼はすっぽんを食べた。

味がして美味しい。うなぎパイも有名なので、うなぎパイファクトリーに観光しにも行った。

労働の様子。ずっと見られながら働いてて大変そう。

これはパフェ。

夜は温泉に入って交互浴を楽しんだ後、浜松餃子とかスーパーでお惣菜とかを買って、ホテルで飲み会をした。トロイカカタンをやっていたら27時になり、「結婚とは」みたいな話をしながら寝た。

起きたのは10時で、モーニング?な時間なので、ブランチとしてうなぎを食べにきた。

藤田というお店で、1時間ほど並んで、20分ほど焼きを待って、ようやくありつくことができた。絶滅の片棒を担いだ感もありつつ、とにかく旨くて最高だった。

今は新宿についたところで、とにかく人が多くて厳しい。

最近、久しぶりに会う友人と「どんなノリで会話してたっけ?」と思案した結果、ラフな敬語で話しかける事が多くてコミュ症感が高まっているので、リハビリしていきたい。とにかく会話する社外の人間が、家族しかいないってのが良くなさそう。交流をしていきたい。