try! Swiftで学んだこと
私のスキル的に、1発表に対して実際に取り込めるのは1〜2個が限界なので、学んだことが少ないのは申し訳ない。
一番学んだことは、海外からの出席者が居るカンファレンスなんだから英語出来たほうが良かったねということ。HiNative Trekの今月のテーマが「カンファレンスでの会話」らしいので受講を開始しました。
続きを読むRealm + 高さが可変するTableViewの考察
何度か、Realm + 高さが可変するTableViewにチャレンジしてみて、自分の中で最終的にこんな感じかなと思ったのでサンプルを作成してみました。アドバイス頂けると嬉しいです。
GitHub - yoneapp/RealmTableViewSample
高さを計算する処理が重く、バックグラウンドに逃したいがRealmはスレッドをまたげないのでバックグラウンド処理において、どう書けばいいのかについて悩み続けています。
ここに至った経緯を記します。現在、四個目です。
一個目
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat にて text.boundingRectWithSize を使用して高さを計算する。もちろん text.boundingRectWithSize をMainThreadで実行すると重い。
二個目
バックグラウンドで text.boundingRectWithSize を実行する。もちろん、Realmを使っているので落ちる。また、上手くごまかせたとしてもデータが書き換わった時に対処しにくい。
三個目
全てのデータをRealmから取り出し、普通のオブジェクトにしてしまう。この場合、Realmの遅延評価による高速性を犠牲にする。また、データが何千件もある場合に処理に時間が掛かる。更新にも時間がかかる。
四個目
仮想のCellを作成して、そこで高さ計算を行う。Realmオブジェクトに識別子を付け、仮想のCellと結びつける。仮想のCellの計算が終わってない場合は、仮のセルを表示しておく。
仮想のCellは、現在表示されてるCellのプラスマイナス5個ぐらいを常にバックグラウンドで計算するようにする。
実際にRealmのデータが削除された場合でも、データがない場合は仮のセルが表示されるのでクラッシュせずに動作します。
五個目
RealmのSlackで質問させて頂いた所、複雑なことをしなくても UITableViewAutomaticDimension で解決できるとアドバイス頂きました。実際の所、高さ計算はそんなに重くないようでした。estimateHightを合わせて使えば、計算されるセルの数も限定できるので簡単に実装することができそうです。
WebからiOSアプリを開く技術調査
URLSchemeでアプリの有無によって挙動を変える(iOS9対応版) | astone.jeez.jp によると、現在はURLに応じて上手く切り替えるのは、うまく動かない可能性が高いようだ。
SmartNews(SmartBanner)
最もスマートな純正ソリューションだが、WebViewで表示されないのが痛い
続きを読むWIP@Annotationが使えるJavaScriptグラフライブラリの選定
TODO: Googleで[Annotation JavaScript graph]で検索する
JavaScriptグラフ適当分類メモ
JavaScript Graphing Library Comparison
グラフ比較サイトだけど多くて選別できない
多機能
Data Visualization - Gallery of Interactive JS Charts | ZingChart
jQuery Widgets & Controls - ASP.NET MVC Controls – IgniteUI
vis.js - A dynamic, browser based visualization library.
リアルタイムグラフやタイムラインが面白い
plotly.js | JavaScript Graphing Library
JavaScript Charts and Maps | amCharts
http://js.devexpress.com/WebDevelopment/Charts/
アニメーション
Chartist - Simple responsive charts
おしゃれアニメーション
真面目おしゃれ
おしゃれ
Canvasで超可愛いグラフが作れる!「Chart.js」の紹介 | 株式会社LIG
まじめ
Beautiful HTML5 JavaScript Charts | CanvasJS
Highmaps JavaScript Maps | Highcharts
GitHub - codesuki/react-d3-components: D3 Components for React
dimple - A simple charting API for d3 data visualisations
Multiple plots sketch - jagracar
シンプル
Chart Gallery | Charts | Google Developers
3D座標
GitHub - frewsxcv/graphosaurus: 3D graph viewer powered by WebGL (three.js)
サムネイル
組織図
yFiles for HTML - HTML5 / JavaScript Diagramming Library
ネットワーク
Cytoscape: An Open Source Platform for Complex Network Analysis and Visualization
GitHub - anvaka/VivaGraphJS: Graph drawing library for JavaScript
ヒートマップ
heatmap.js : Dynamic Heatmaps for the Web
地図
おまけ
WIP@CSSをどう書くか考えるために各社のCSSを調べてみた
Cookpad
内製 Sara Framework
normalize.css v3.0.0
suit-utils-link v0.2.0
後はベタ書きかな
OneSignal
Bootstrap
potatotipsでPUSH通知の許可UIに関して発表してきました
potatotips #26 (iOS/Android開発Tips共有会) - connpass で発表して参りました。運営スタッフの方や会場提供のSupershipさんありがとうございました。
発表資料
Twitterの反応
続きを読むpush通知の話
— かぺぺ (@shizshizc919) 2016, 2月 17
・唐突系
・事前説明系
・事前説明+擬似アラート
・通知許可許可系
通知の意味を伝えないと、みんなOFFにされちゃうという気がしてる😰
若者達は通知OFF慣れしてそう
#potatotips