読者です 読者をやめる 読者になる 読者になる

なるようになるかも

力は多くの場合、その人の思いを超えない。

「よくわかる AutoLayout」読んだ。

よくわかるAuto Layout iOSレスポンシブデザインをマスター - リックテレコム書籍情報 前提 わたしはコード、VFL、Storyboard で制約を書きます。ライブラリは特に使いません。 なんで全部覚えたの?って疑問に思うかもしれません。わたしも最初はいずれかひ…

Android 7.0 では TextureView よりも SurfaceView が推奨されるらしい。

まじかよ!ってなったので。 たぶん、大半の人にとってはどうでもよいです。 公式リファレンスの Android N for Developers の英語版には以下の記述があります。(いまのところ日本語には訳されていないです) Android 7.0 brings synchronous movement to t…

ここ最近読んだ技術書籍感想文。

雑多に読んでます。 リンクは書籍の公式サイトです。 黒帯エンジニアが教えるプロの技術 Android開発の教科書 SBクリエイティブ:黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ) 幅広いトピックを扱っているのだけれど、それ…

スマートフォンの連絡帳の話。

純正の連絡帳で別に満足してるって人もいれば、オリジナルの連絡帳を入れてる人もいますし、そもそも連絡帳に何も登録されてない人もいるでしょう。 それはさておき、iOS や Android の OS 標準の連絡帳はユーザー視点で見るか、開発者視点で見るかで貧弱と…

NSUnit と NSMeasurement についての話。

iOS10.0 / OS X 10.12 / tvOS 10.0 / watchOS 3.0 で追加されたクラスです。(これをひとまとめにする呼び方がほしい) NSUnit は単位を表すクラスです。単位と double の値を組み合わせて、NSMeasurement、測定値を記述することができます。 NSMeasurement …

Javaと偽Javaの話。

qiita.com これの話。ブコメに書こうとしたら4000字は入らなかった。 Microsoft Java VM かつての WIndows には MS 製の Java VM が搭載されていました。 古代の Java は「Write once, run anywhere」を掲げていた通り、クライアントサイドで Java アプレッ…

Anyパターンについて考えてみる

「Swiftの標準ライブラリだと付属型を持ったプロトコルを変数に格納するため、慣例的にAnyなんとかってクラスを用意してる」というところまでが話の前提です。 Anyクラス実装者の責務 qiita.com 例によって、Pokemonプロトコルで考えてみます。 ポケモンでは…

AnySequenceってなんなの?

AnySequenceってなんなの?っていうのを調べようとしたメモです。 JavaのGenericsは本当に型情報を消し去るイレイジャなのでまず意識しなくていいし、C#(4.0以上)のGenericsは共変性・反変性を持っているので、Swiftだとなんでややこしいコードになるのか…

いまさら Android 6.0 の Permissions at Run Time について

ここに書いてある内容が正しいという保証が一切持てないので、けっして鵜呑みにしないでください。 とりあえず公式ドキュメントのRequesting Permissions at Run Timeをざっくり読みました。 ランタイムパーミッションの概要 Andorid 6.0(API level23)以降…

Swiftは結局どうオープンソースになったのか?

オープンソース化ばんざーい!!とかそういうのは全然興味ないです、ごめんなさい。 XCode7で何気なくimport Foundationなどをすると、ついでに以下のライブラリがリンクされるそーです。 SwiftCore(Swiftのコア言語仕様) Darwin(UNIXベースのOSX/iOSの基…

すたっく・おーばーふろー

blog.jnito.com 12位に載ってたので。 おそらくStackOverflowに多くの人が求めているのは「高品質なナレッジ」であり、そのため情報は英語に集約されるべきで、日本語版は不要という考えが強いと思うので、天邪鬼な自分は気ままに回答してます。 ところで、S…

iOS9広告ブロック騒動雑感

煎じすぎて味がしないかもですが、開発者視点の話ってあんま見ないので。 Appleは日本の広告業界なんて見ていない 「悪い日本の広告が駆逐されるのは良いことだ」「これをいい機会に広告産業を見直すべきだ」的な論があるのだけれど、Appleは特に日本の広告…

擬似乱数というかarc4random()の話。

擬似乱数と言えば、かのカルドセプトサーガの悲劇が有名です。 ダイスの出目が必ず奇数と偶数の繰り返しになるという、地味ながらゲームバランスの根幹を破壊するバグが話題となりました。しかしその話題から得るべき教訓は、 その論調は一様に、サイコロす…

iOS9 SDKでDeprecatedになるもの。

UPDATE(2015/09/26):この文書はDeprecatedという単語の使い方が雑なのでDeprecatedになりました。 こちらの記事を参照した方が得るものがあるかと思います。 qiita.com 新しいAPIの誕生より、APIの滅びの方が好きです。なぜならそこには失敗があり、学びがあ…

Java版Foundationのこと、覚えてる?

Objective-CはSwiftに置き換わるのか? - Qiitaqiita.com 素朴な疑問があったので投稿してみました。これはその補足みたいなもの。 CoreData CoreDataって凄く独特な世界観を持っていて扱いづらいと思った人が多いのではないでしょうか。 なんでこんなのがXC…

Nexus5にAndorid M Preview入れた。

あるいはAndroidのデータ領域についての話。もしくはLollipopのバッテリーイーターに対する愚痴。 「Previewを入れるには全てのデータが消える覚悟が必要」みたいな話をよく聞きますが、Androidのデータ構造を理解せずに、batやシェルスクリプトを使ってアッ…

AppCompatDelegateの話。

Toolbarは正直ないわーって感じなんですけど、皆様は適合されたんでしょうか。 DroidKaigiなるイベントがあったらしく、Toolbarが受け入れられるのかディスられるのかが気になっていたのですけど、「BaseActivityの是非」が一番のトピックだったっぽい?個人…

Androidのタスクとプロセスの話。

あるいは、「Androidのstatic変数は勝手にクリアされる」という迷信についての話。 タスク Tasks and Back Stack | Android Developers A task is a collection of activities that users interact with when performing a certain job. The activities are …

今年入ってから読んだ本とか。

NFC Hacks NFC Hacks ―プロが教えるテクニック & ツール作者: 株式会社ブリリアントサービス出版社/メーカー: オライリージャパン発売日: 2013/11/30メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見る 2015年になって、ようやくNFCについ…

AndroidもiOSもC#で書けるようになればいいのに。

Xamarinはなんか生理的に受け付けないのでなしで。 Hatena Engineer Seminar #4で「はてなのiOSアプリとSwift」という発表をしました #hatenatech - yashigani?.days しかし,実際に実装するにあたっても可読性のために同じようなところに改行を入れるとおも…

強制バージョンアップの話。

[iOS]アプリに強制アップデート機能を導入すべき理由と、簡単に実装する方法 - Qiita という記事を見かけたので。 このライブラリの実装の問題点 key description type 基本的には強制バージョンアップを行うことを前提に解説していますが、SRGVersionUpdate…

今更AndroidのToolbarについて理解できたような気がするのでメモ。

気のせいかもしれません。 Toolbar Toolbar は Action Bar を一般化させたもので、同様の機能を備えつつ、より高い柔軟性を提供します。通常の Action Bar と異なる点は、Toolbar は階層内のビューの 1 つであるということです。そのため、Toolbar のインス…

どうでもいいカレンダーの話。

iOSをやってるとあるあるなのが、ユーザーがOSの端末設定を「和暦」に設定してるせいで、取得されるカレンダーが日本のものになってしまい、NSDateFormatterが期待通りに動作しないというもの。 海外のアプリは和暦を考慮してないので上手くいけばクラッシュ…

マテリアルなナビゲーションドロワー。

Android - googleアプリから見るナビゲーションドロワーのマテリアルデザイン - Qiita 今のGoogle製のアプリはおおよそこういう見た目になっています。 記事の端末は若干古く、記事のコメントにあるSSのようにステータスバー領域までナビゲーションドロワー…

Androidのサポートパッケージについて

v17 Leanback Libraryの存在はとりあえず無視しておくとして、Androidのサポートパッケージは何種類かあります。 たぶんv13パッケージはなぜ存在するのか知らない人が多いと思いますので備忘録も兼ねて。 v4 Support Library まず、サポートパッケージのv4と…

SyncResultメモ。

どうせ自分しか使わないアプリなら、Lollipop限定のJobSchedulerでいいんじゃないかなという気がしてきました。 SyncResultの概要 SyncResult | Android Developersより、必要そうな部分を抜粋。完全な情報はリンク先参照 このクラスはSyncManagerへ同期操作…

SyncAdapterのメモ。

年末暇なAndroid開発者は是非SyncAdapterを実装しましょう。 バックグラウンドフェッチはこれでやるべきです。 startForeground()とかStickyBroadcastを悪用した死ににくいサービスとかで延々通信させる闇アプリは滅びてください。ていうか他人が実装した通…

コンテナViewControllerについて

A-Liaison BLOG: Container View Controllerを作ってみよう この記事の間違いが多すぎてやばいので。 iOS 5からはこのContainer View Controllerを自作する事が可能になりましたが、実装が面倒なのと大体の場合においてUIKitが用意しているContainer View Co…

AndroidのHttpURLConnection。

これはAndroidじゃなくてJDKのインターフェースの設計の問題なのですが、HttpURLConnectionは入出力エラーが発生した際にIOExceptionを投げるという規定があります。 問題は、HTTPステータスコードが400番台ないし500番台のコードのボディを読もうとした際に…

Androidの通信処理に何使えばいいのか分からないって話。

特に結論はないです。本当に分からないので。 ソケットレベルまで踏み込むと、途端に面倒になってどのライブラリを使っても手に負えませんし、単にGETとかPOSTとかする分には正直どれ使ってもそこまで変わらない気がしてます。 それより自己署名証明書の検証…

AndroidでSNS連携する方法

すごく今更な話題なんですけど、iOS8で「AndroidのIntentみたいに簡単に共有できるようになる!」っていう話をよく聞いたので。 OS標準で共有機能のあるiOSアプリをAndroidに移植を行う場合に、「TwitterとFacebookに投稿するボタン作って。IntentのあるAndr…

UIKit徹底解説読んでる。

StoryBoardに乗り遅れてる感があるので手にとってみたのですけど、いい本です。まだ完全に読み込めてないのでざっくりとした感想ですけども。 UIKit徹底解説 iOSユーザーインターフェイスの開発作者: 西方夏子,丸山弘詩出版社/メーカー: インプレスジャパン…

iOS6/7のviewDidLoadが呼ばれるタイミングの違い

「viewDidLoadが呼ばれるタイミングは、UIViewControllerのviewプロパティが初めてアクセスされたタイミングである」と公式ドキュメントに書いてあります。 しかし、 いつ・誰がviewプロパティにアクセスするのか についてはフレームワーク内部なのでブラッ…

iTunes Connectの変更の話。

TechCrunchの記事(というかその翻訳)が酷かったので。 原文タイトルは「Apple Developers Must Now Agree To Ad Identifier Rules Or Risk App Store Rejection」。 「Appleのデベロッパーは今後広告識別子の規則に同意しなければ、AppStoreからリジェクト…

FragmentとActivityの連携方法

最初に、エアコードなので動作するかは分かりません。ちゃんと動くコードをまとめて公開するようにした方がいい気がするけど時間があるときに。 Activity→Activity→Activity 超基本。呼び出し元はstartActivityForResult()を使う。 Intent intent = new Inte…

実行ループとdispatch_sourceの話。

いまやiOSのネットワーク処理といえばAFNetworkingな感じです。 しかし古いストリーミングAPIを使った経験があれば、ブロックベースのAPIでどうやってネットワーク通信を行っているのか疑問に思うはずです。なぜかというと、 GCDは実行ループを持てない から…

GoogleCloudMessaging.unregister()は呼び出す必要はない。

【前提記事】AndroidのPush通知の話。 - なるようになるといいね GCMRegistrarのisRegistered()に相当するメソッドがなくなっているところから勘の良い人は気付くかと思いますが、 GoogleCloudMessaging | Android Developers より一部抜粋 public void unre…

AndroidのPush通知の話。

AndroidのPush通知はGoogle Play Serviceに統合されました。 いままではSDKマネージャーからGoogle Cloud Messaging for Androidをダウンロードして、gcm.jarをプロジェクトにインポートすることができたのですが、ついにSDKマネージャーからGoogle Cloud Me…

Objective-Cの列挙の話。

Objective-C - NSArrayでfor(; ;)とかfor-inを使うのをやめて、enumerateObjectsUsingBlock:を使う - Qiita とか Objective-Cのいろいろな反復処理 - koogawa blog とかで列挙の話を見たので。 最も高速な列挙の方法 最初に結論を書いておくと、Objective-C…

iOSでの端末固有識別子の話。

iPhone - UDID確認アプリが全くアテにならない件 - Qiita というのを見かけて、なんとなくまとめてみたくなりました。 Appleは端末を固有識別しようとする試みを挫こうとします。ただそれは 横断的に固有識別を行おうとしている ケースだけであって、UUID(Un…

Google Drive Android API (2014/02) のメモ書き

GoogleApiClientをどう扱えばいいのか微妙に悩みどころ。 ドキュメントには書いていないAPIリミットがあるケースもありえるので、頻繁に接続/切断してしまっても構わないのか、それともある程度大きなスコープで保持しておくべきなのか。 指針となるのが、 Y…

クラス拡張とカテゴリの違いの話。

常々「クラス拡張をカテゴリってゆーな」って思ってるんだけど、「無名カテゴリ」自体は公式の呼称なんだよね。 [Objective-C] クラス拡張と無名カテゴリ - Qiita Objective-Cのクラス・カテゴリ・クラス拡張の整理 - $ cat /var/log/shin クラス拡張は、無…

estimatedHeightについて計測してみた。

iOS - 見積もりの高さでUITableViewを高速化する話。 - Qiita iOS6検証用だったiPhone4Sを、速度テスト用に初期化してiOS7に上げたのはいいんだけど、Apple Developerのダウンタイムだったみたいで、結局テスト機はiPhone5Sを使うことに。 そのためテストデ…

iOS7の「コントラストを上げる」設定は、アプリから取得できない

iOS7.0.4時点の情報。 Objective-C - iOS7の曇りガラス効果について知っている事まとめ - Qiita を読んでいて、 おそらく一般的な希望としてはデフォルトの動作と同じように、「コントラストを上げる」がオン(もしくは曇りガラス非対応機種)の状態ではバー…

UIAppearanceとUIBarPositionとバグと

iOS7/6対応を考えたとき、もっとも面倒なのはナビゲーションバーの画像を用意することのように思う。 まずPortraitとして、44px、88px(@2x)、128px(iOS7)、同様にLandscapeとして32px、64px、104pxの合計6種類の画像が必要になる。 非retinaであるiPhone…

Viewのリソースの話。

メモリ管理・レイアウトの観点からみた UIViewController の view の扱い - jarinosuke blog うーん、ARCについての理解が不十分で、見当外れなコメントを書いてしまいました。 個人的には、そのプロパティがカスタム実装である場合、コードの読み手に意図が…

iOS7以降、自動設定される暗黙のcontentInsetsについて

qiitaに書きました。 UIViewControllerのautomaticallyAdjustsScrollViewInsetsプロパティが意味するものが分かる人は読まなくてもいい内容です。 iOS - UINavigationControllerと領域拡張に潜む罠 - Qiita [キータ] 端的に言えば、UINavigationControllerを…

iOS7における20pt問題とかTabBarControllerのView領域とか。

さすがにiOS7が出て半年も経ったのにこんな問題で悩んでる人もいないよーな気もしますが。 20ptズレるのをどうするべきか 改めて書きますが、 最良の方法はAutoLayoutを使うこと です。 というか今からレイアウト組んで、iOS5を切り捨てられるなら、それ一択…

iOS7対応の話。

やはりお前らのiOS7対応は間違っている(變) - Qiita [キータ] ざっくり要約すると、「iOS7向けにアプリを作り直して、iOS6対応するのが真のiOS7対応である」というごもっともなお話。 フラットデザインに合わせてデザイナーに再依頼して、DevPreview版のXCod…

続・ショートカット作成アプリ

glayash/Shortcut2 · GitHub もともとは来るべきActionBarActivityへの移行に備えて手を動かしてみようということで、アプリ内に存在する任意のActivityを起動/ショートカット作成を行う、というアプリを作ってみたんだけど、なかなか面白かった。 開発者向…