タグ

ブックマーク / quesera2.hatenablog.jp (23)

  • 最近のアプリ界隈での「設計」の違和感 - なるようになるかも

    アプリ界隈で「設計」の話をするときに MVC / MVP / MVVM のような「設計パターン」だけが語られるようになった気がする。 往々にして、「アプリの規模によってどれを採択すべきかは変わる」みたいなお茶を濁すような結論で終わることが多い。 私的な結論 「設計」と、「設計パターン」は別物だと思う。 「設計」のレベルを上げたい。 アーキテクチャシンドロームから抜け出して、価値のあるものを作りたい。 以下、思うところのメモ。 MVC は古い / 劣ったやり方か? MVC は Model をどう構築するかについてとくに規定していない。 MVC への批判をするときに、FatVC が持ち出されることが多いのですが、FatVC を実装してしまうのは単に実装者の能力不足だと考えていて、MVVM を採用しても FatVM を作るだけだと思っている。 また、比較的新しめの Flux アーキテクチャは、良

    最近のアプリ界隈での「設計」の違和感 - なるようになるかも
    raimon49
    raimon49 2018/06/16
    言わんとするところは分かる。モバイルアプリは「ストアに早く出してしまって育てる」側面も強いので、最初から頭でっかちに議論しているとチャンスを逃すケースもあって、成長フェーズに応じて改善するのが良さそう
  • Android 7.0 では TextureView よりも SurfaceView が推奨されるらしい。 - なるようになるかも

    まじかよ!ってなったので。 たぶん、大半の人にとってはどうでもよいです。 公式リファレンスの Android N for Developers の英語版には以下の記述があります。(いまのところ日語には訳されていないです) Android 7.0 brings synchronous movement to the SurfaceView class, which provides better battery performance than TextureView in certain cases: When rendering video or 3D content, apps with scrolling and animated video position use less power with SurfaceView than with TextureView. The Su

    Android 7.0 では TextureView よりも SurfaceView が推奨されるらしい。 - なるようになるかも
  • ここ最近読んだ技術書籍感想文。 - なるようになるかも

    雑多に読んでます。 リンクは書籍の公式サイトです。 黒帯エンジニアが教えるプロの技術 Android開発の教科書 SBクリエイティブ:黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ) 幅広いトピックを扱っているのだけれど、それゆえにどこかで読んだの内容を簡略化しているだけの章もあったり、開発以外のトピックの割合が多かったり、Andorid 開発の高度な技術トピックを期待すると中途半端かもしれないという感想でした。 同時期により初心者向けと思われる「基からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応」というも出版されていたので、こちらのトピックでよかったんじゃない?という内容もちらほら。 また、アプリのグロース関連の章については、Firebase の登場で大きく変わった部分が多く、タイミングの悪い感じです。

    ここ最近読んだ技術書籍感想文。 - なるようになるかも
    raimon49
    raimon49 2016/08/22
    C#とJava 8の本が良さそう。
  • スマートフォンの連絡帳の話。 - なるようになるかも

    純正の連絡帳で別に満足してるって人もいれば、オリジナルの連絡帳を入れてる人もいますし、そもそも連絡帳に何も登録されてない人もいるでしょう。 それはさておき、iOS や Android の OS 標準の連絡帳はユーザー視点で見るか、開発者視点で見るかで貧弱とも言えるし、高性能とも言えて面白いです。 連絡帳の基思想 iOS / Android に共通して言えることとして、実用的ではないです。グルーピング表示すらできません。 その理由は、OS 標準の連絡帳は、端末内の利用出来る情報を活用しつつ、様々なアプリへ連絡帳情報を提供するためのデータベースとなるよう、割り切った実装になっているからです。 連絡帳の元データは、多種多様です。 Android であれば Google アカウント、iOS であれば iCloud アカウントに紐付いていることが多いと思います。 その他にも SIM カードやソーシ

    スマートフォンの連絡帳の話。 - なるようになるかも
    raimon49
    raimon49 2016/06/23
    ロケール依存したソートや電話番号ルックアップ用テーブルの実装について。
  • NSUnit と NSMeasurement についての話。 - なるようになるかも

    iOS10.0 / OS X 10.12 / tvOS 10.0 / watchOS 3.0 で追加されたクラスです。(これをひとまとめにする呼び方がほしい) NSUnit は単位を表すクラスです。単位と double の値を組み合わせて、NSMeasurement、測定値を記述することができます。 NSMeasurement は加算・減算のメソッドがあるほか、乗算・除算の演算子のオーバーロードがあるので、例えば時間の計算を以下の記述で行うことができます。 // Swift3 で書く場合には、`NS` が drop されるので、以下はそのように記述します let sec = Measurement(value: 1.0, unit: UnitDuration.seconds) let hour = Measurement(value: 1.0, unit: UnitDuration.hou

    NSUnit と NSMeasurement についての話。 - なるようになるかも
  • Javaと偽Javaの話。 - なるようになるかも

    qiita.com これの話。ブコメに書こうとしたら4000字は入らなかった。 Microsoft Java VM かつての WIndows には MS 製の Java VM が搭載されていました。 古代の Java は「Write once, run anywhere」を掲げていた通り、クライアントサイドで Java アプレットとして利用されるのが主流でした(サーバーサイドで動くようになって、真価を発揮した感じがあります)。 しかし Java VM の仕様は、パフォーマンスについての記述は曖昧になっており、OS ごとの実装の違いによって、実行速度に顕著な差がありました。 Windows の Sun 純正の Java VM は性能が悪かったため、MS は独自の Java VM を開発し、Internet Explorer にバンドルしました。調子に乗った MS は Windows GUI

    Javaと偽Javaの話。 - なるようになるかも
    raimon49
    raimon49 2016/05/29
    元々のAndroid JavaはApache Harmonyが出自の非互換実装であるが、Android 7.0 Nougat以降はOpen JDKを採用しているため標準ライブラリも互換性がある。Javaの歴史だけでなく業界の巨人がどう動いたかもまとまってる記事。
  • Swiftは結局どうオープンソースになったのか? - なるようになるかも

    オープンソース化ばんざーい!!とかそういうのは全然興味ないです、ごめんなさい。 XCode7で何気なくimport Foundationなどをすると、ついでに以下のライブラリがリンクされるそーです。 SwiftCore(Swiftのコア言語仕様) Darwin(UNIXベースのOSX/iOSの基盤部分。CoreFoundationもここに含まれる) Dispatch(Grand Central Dispatch) CoreGraphics(描画処理の基盤部分。今はOpenGLだと思いますがそのうち中身がMetalになるのでしょうね) ObjectiveC(Objective-Cランタイム関数) Security Swiftがオープンソース化される、と言っても当にpure Swiftのコンパイラだけが提供されてもあまり意味がないので、「どこまでがどうオープンソースになるのか?」というのが興

    Swiftは結局どうオープンソースになったのか? - なるようになるかも
    raimon49
    raimon49 2015/12/05
    Foundation on Swiftの行方。この辺Appleがどう考えているのか確かに気になる。
  • すたっく・おーばーふろー - なるようになるかも

    blog.jnito.com 12位に載ってたので。 おそらくStackOverflowに多くの人が求めているのは「高品質なナレッジ」であり、そのため情報は英語に集約されるべきで、日語版は不要という考えが強いと思うので、天邪鬼な自分は気ままに回答してます。 ところで、StackOverflow質というのは、その質の高いQAを支える コミュニティが存在する ところで、それ自体は日語圏にもあっても良かったのになーと思います。 というより、10年くらい前のはてダ界隈がたぶんそんな感じだった気がします。適当な技術知識でモノを書くと手斧が飛び交っていましたが、異なる視点で技術論を交わしているのは見ていて非常に面白かったです。 もっとも、自分は一応はてなダイアリー評議会とかがあった頃に、はてなダイアリー市民だったのですが、当時のidは技術的なことをネットに書こうというモチベーションはなかったの

    すたっく・おーばーふろー - なるようになるかも
  • iOS9広告ブロック騒動雑感 - なるようになるかも

    煎じすぎて味がしないかもですが、開発者視点の話ってあんま見ないので。 Appleは日の広告業界なんて見ていない 「悪い日の広告が駆逐されるのは良いことだ」「これをいい機会に広告産業を見直すべきだ」的な論があるのだけれど、Appleは特に日の広告業界について不満があるわけでもなんでもなく、ウェブサイトのネイティブアプリ化、あわよくば自社のiAdを盛り上げたいという意図しかないのでは?と考えています。 ウェブサイトのネイティブシフトについては、iOS8からSafariのログイン情報を使ってシームレスにアプリにログインする機能が追加されています。OSXではSafariでログインし、その認証情報をiCloudキーチェーンでiOSに連携、ネイティブアプリを使う、という囲い込みがAppleの考えているゴールと考えています。 情報を囲われるということは、広告産業にとって致命的です。リスティング広告

    iOS9広告ブロック騒動雑感 - なるようになるかも
    raimon49
    raimon49 2015/09/20
    >焼畑に広がるのは「OSをアップデートしたら起動しません。★1です」の怨嗟のレビューばかりです。 / つらみ……
  • iOS9 SDKでDeprecatedになるもの。 - なるようになるかも

    UPDATE(2015/09/26):この文書はDeprecatedという単語の使い方が雑なのでDeprecatedになりました。 こちらの記事を参照した方が得るものがあるかと思います。 qiita.com 新しいAPIの誕生より、APIの滅びの方が好きです。なぜならそこには失敗があり、学びがあるからです。 developer.apple.com …とか適当に言ってみましたが、iOS9のAPI Diffは、Swift2.0絡みの変更点(主にNSErrorに対応するenumの追加と、後述するビットマスクの扱いの変更)だらけで、当に変わった場所がどこなのか分かりにくいので、ちゃんと調べてないです。 AudioUnitOSXに追いついたCoreAudio周りが熱いような…。CFunctionPointerの魔窟だったCoreMIDIなんかは刷新と言っていいレベルで変わっていますね。でも今のA

    iOS9 SDKでDeprecatedになるもの。 - なるようになるかも
    raimon49
    raimon49 2015/06/29
    stringByAddingPercentEscapesUsingEncodingとCFURLCreateStringByAddingPercentEscapes()とうとう消えるのか。さすがにiOS 6以前を律儀にサポートしてるアプリも少なくなって来てるから、混乱は少なそう。
  • Java版Foundationのこと、覚えてる? - なるようになるかも

    qiita.com 素朴な疑問があったので投稿してみました。これはその補足みたいなもの。 CoreData CoreDataって凄く独特な世界観を持っていて扱いづらいと思った人が多いのではないでしょうか。 なんでこんなのがXCodeやInstrumentsのテンプレートに居座っているのか理解できない、関連張ると動作が重くなりすぎて使い物にならない、CoreData内部の良く分からないエラーに悩まされている、普通にSQL書きたいからFMDB使ってます、幻滅しましたRealmに移行します、そんな雰囲気だと思います。 CoreDataの原型は、NeXTのFoundationが用いられた最初の製品であるEnterprise Objects Frameworkです。 20年前にデータベース製品の学習コストの高さと、オブジェクト指向言語とのインピーダンスミスマッチの問題に取り組んだこの製品は、普及はし

    Java版Foundationのこと、覚えてる? - なるようになるかも
  • Nexus5にAndorid M Preview入れた。 - なるようになるかも

    あるいはAndroidのデータ領域についての話。もしくはLollipopのバッテリーイーターに対する愚痴。 「Previewを入れるには全てのデータが消える覚悟が必要」みたいな話をよく聞きますが、Androidのデータ構造を理解せずに、batやシェルスクリプトを使ってアップデートをしている人の勘違いです。 前提条件はありますが、ユーザーデータ領域を残したままM Previewを入れることはできます。 Androidのデータ領域について fastbootコマンドはおまじないではありません。データ領域の意味が分かれば、何をしているのか理解できます。 データ領域名 説明 bootloader fastbootモードで起動するのがこのブートローダ…みたいな認識で合ってるんでしょうか。通常oemロックにより読み取り専用領域となっていますが、Nexus端末はアンロックできます。ブートローダーのアンロッ

    Nexus5にAndorid M Preview入れた。 - なるようになるかも
    raimon49
    raimon49 2015/05/31
    Lollipop バッテリーイーターなモード
  • Androidのサポートパッケージについて - なるようになるかも

    v17 Leanback Libraryの存在はとりあえず無視しておくとして、Androidのサポートパッケージは何種類かあります。 たぶんv13パッケージはなぜ存在するのか知らない人が多いと思いますので備忘録も兼ねて。 v4 Support Library まず、サポートパッケージのv4とは「サポートパッケージのversion4」ではなく、「AndroidAPI Lv4以上で利用できるサポートパッケージ」を意味しています。 v4はAndroid 1.6 Donut以上で使えるライブラリで以下の機能を持ちます。 互換性のための機能 3.0で追加されたFragmentのサポート 3.0で追加されたLoaderのサポート Notification系のメソッドは@Deprecatedが多く、通知できるスタイルも4.1で大幅に増えたのですが、NotificationCompatを使うことでその辺

    Androidのサポートパッケージについて - なるようになるかも
  • AndroidのHttpURLConnection。 - なるようになるかも

    これはAndroidじゃなくてJDKのインターフェースの設計の問題なのですが、HttpURLConnectionは入出力エラーが発生した際にIOExceptionを投げるという規定があります。 問題は、HTTPステータスコードが400番台ないし500番台のコードのボディを読もうとした際に、getInputStream()を使うと入出力エラー扱いされてIOExceptionが発生することです。 最近のRESTfulなサーバーインターフェースの設計だと、HTTPステータスコードに意味を持たつつ、レスポンスボディにコンテンツを渡すのが主流ですが、HttpURLConnectionのちょっとしたサンプルでは400 Bad Requestや401 Unauthrizedが返されることを考慮していないことが多いです。 HttpURLConnectionを格的に使おうとすると、大抵ここで躓くことになり

    AndroidのHttpURLConnection。 - なるようになるかも
  • Androidの通信処理に何使えばいいのか分からないって話。 - なるようになるかも

    特に結論はないです。当に分からないので。 ソケットレベルまで踏み込むと、途端に面倒になってどのライブラリを使っても手に負えませんし、単にGETとかPOSTとかする分には正直どれ使ってもそこまで変わらない気がしてます。 それより自己署名証明書の検証を無視して通信を行うと端末が爆発するライブラリが必要だと思います。 Apache HTTP Client みんなお馴染みDefaultHttpClient。色々なライブラリがあるけど、最終的にはここに行き着いていることが多いです。 しかし「Apache HTTP Clientとは何なのか」、という説明はあまり見ない気がします。 自分も「Apacheソフトウェア財団のトップレベルプロジェクトとして運用されている、RFCを満たす実装を目指したJava向けのHTTPインターフェース」という超ふんわりとした認識しかないです。 かなり巨大なライブラリで、全

    Androidの通信処理に何使えばいいのか分からないって話。 - なるようになるかも
    raimon49
    raimon49 2014/11/22
    確かに。
  • AndroidでSNS連携する方法 - なるようになるかも

    すごく今更な話題なんですけど、iOS8で「AndroidのIntentみたいに簡単に共有できるようになる!」っていう話をよく聞いたので。 OS標準で共有機能のあるiOSアプリをAndroidに移植を行う場合に、「TwitterとFacebookに投稿するボタン作って。IntentのあるAndroidなら簡単でしょ?」みたいに言われるんですが、現実は割と甘くないです。 確かに、ACTION_SENDなどで暗黙のインテントを飛ばすだけで勝手に投稿可能なメーラーやSNSクライアントが一覧表示されます。 ただし、ACTION_SENDによる共有の考え方では、受け取ったアプリが全てハンドリングしてくれる利点と引き換えに、「Twitterのみに投稿したい」という制約条件を付与できないのです。 加えてSNSごとの文字数制限や、後述するFacebookの独自仕様などがあるため、送る側が何も考えなくても、イ

    AndroidでSNS連携する方法 - なるようになるかも
  • Swiftの配列の話 - なるようになるといいね

    raimon49
    raimon49 2014/06/22
    >「変異が発生する」=「mutingメソッドを利用する」と「ディープコピーが発生」して、「暗黙の配列実体共有」が解除される(元がlet宣言ならコンパイルエラー)。 / Obj-Cとは別の法則性が存在している話。確かに混乱。
  • UIKit徹底解説読んでる。 - なるようになるかも

    StoryBoardに乗り遅れてる感があるので手にとってみたのですけど、いいです。まだ完全に読み込めてないのでざっくりとした感想ですけども。 UIKit徹底解説 iOSユーザーインターフェイスの開発 作者: 西方夏子,丸山弘詩出版社/メーカー: インプレスジャパン発売日: 2014/06/13メディア: 単行(ソフトカバー)この商品を含むブログを見る 特にUIFontDescriptorまわりについては、これほど丁寧な解説は存在しないと思います。 StoryBoardを駆使してコード量を減らしつつTODOアプリを作る章など、読み応えのあるでした。 iOS6と7による違いのトラップについても随所に述べられています。 ただUIKitの処理について徹底的に書かれているかというと、ヒットテストビューやレスポンダチェーンについての解説はイベント処理ガイド(iOS用)をほぼなぞりつつ、ジェスチャ

    UIKit徹底解説読んでる。 - なるようになるかも
    raimon49
    raimon49 2014/06/17
    StoryBoard乗り遅れてるから読みたい。
  • 実行ループとdispatch_sourceの話。 - なるようになるかも

    いまやiOSのネットワーク処理といえばAFNetworkingな感じです。 しかし古いストリーミングAPIを使った経験があれば、ブロックベースのAPIでどうやってネットワーク通信を行っているのか疑問に思うはずです。なぜかというと、 GCDは実行ループを持てない からです。 そもそも実行ループとは何なのでしょう。 実行ループとは NSRunLoop Class Referenceより The NSRunLoop class declares the programmatic interface to objects that manage input sources. An NSRunLoop object processes input for sources such as mouse and keyboard events from the window system, NSPort

    実行ループとdispatch_sourceの話。 - なるようになるかも
  • AndroidのPush通知の話。 - なるようになるかも

    AndroidのPush通知はGoogle Play Serviceに統合されました。 いままではSDKマネージャーからGoogle Cloud Messaging for Androidをダウンロードして、gcm.jarをプロジェクトにインポートすることができたのですが、ついにSDKマネージャーからGoogle Cloud Messaging for Androidが消滅しました。 deprecatedの予告は昨年の7月ごろ行われ、クローズまで半年程度の猶予があったんですけれども、それ以降に出たでgcm.jarを使うことを前提してるがあります。 具体的には「Effective Android」や「iPhone/Android 「通知機能」プログラミング徹底ガイド」です。 断言しておくと、 Push通知の実装を目的にこれらのを買うべきではありません 。 新しいPush通知APIの違い

    AndroidのPush通知の話。 - なるようになるかも
    raimon49
    raimon49 2014/03/15
    GCM 古い情報の書籍に注意