プログラミング

UILocalNotificationサンプルソース

先日こんなお問い合わせをいただいた.@h3_poteto ブログ見てツイートさせていただきました。 ローカル通知についてもっと教えて教えて欲しいです。 アプリが起動してない時にどこの部分の処理が行われるのかなど、 できれば、「iOS8でUILocalNotificationの…

swiftでテストモジュールから,アプリケーションモジュールのクラスを呼び出す

swiftでのテスト界隈だと,Quickなんかが最近期待されていますね.[Swift] Quick で振る舞いテストをしてみよう | Developers.IO [Swift] Quick で振る舞いテストをしてみよう | Developers.IO でもそんなことを無視して,従来通りのXCTestでユニットテスト…

asumi.chをRails3.2からRails4.2までアップグレードした

asumi.chを公開してもう1年以上たちましたね.阿澄病治療薬を作った - PartyIX 阿澄病治療薬を作った - PartyIX そろそろ時期なのかなーということで,Railsのバージョンアップをしました. というわけでメモを残しておきます. とりあえずアップデートをか…

Fabricに取り込まれたCrashlyticsを使ってみる

iOSアプリの開発をしているとクラッシュレポートが欲しいときがある. 「バグあるんだけど」と言われてもシミュレータでも自分の端末でも再現できないし,それどころか報告者の端末でも再現性が低かったりすることがある. というか,報告してくれるだけマシ…

LinuxのFireFoxにて,FlashPlayerが古いと言われる

最近,FlashPlayerが安全ではないと言われる……. 更新しろというので更新してみるのだが,Linux版のAdobeFlashPlayerは11.2で更新を停止し,以降はサポートのみとなっているのは有名な話です.なので,どれだけ最新にしても「安全ではない」と言われ続けます…

sidekiqのリトライ回数は26回以上を指定できる

Railsの非同期処理実行を実現するgemとして,sidekiqは非常に有用です. 有名ではあるので,一般的な使い方についてはここでは説明しません.Rails - sidekiqの使い方 - Qiita Rails - sidekiqの使い方 - Qiita この辺を見ると簡単に使えるようになると思い…

TweetStreamとTwitterというGemでUserstreamを使う

現在,rubyからtwitterのAPIを叩くのに便利なGemとして,twitter gemがある.sferik/twitter sferik/twitter · GitHub これでRESTのAPIはほぼすべて叩ける仕様になっている. RESTのAPIはこれでいいのだが,ひとつ重要な機能として,Userstreamがある.twitt…

iOS向けtwitterクライアント,Whalebirdを公開しました

半年くらいカタカタし続けていましたけど,ようやく公開になりました.去年の4月に,iOS使いになったのですが,やっぱりtwitterを見るにはサードパーティ製のクライアントが欲しくて……. ただ,どうにもぐっとくるクライアントに出会えなかったので,自分で…

Railsで呼び出すjsをページごとに分けたい

Railsにかぎらず,ある程度のフレームワークに乗っかって開発していると「できることはできるんだけど,ちょっと好みに合わせたい」みたいな要望が発生してくる.今回のも,そんな「気を使えばできるけど頑張りたくない」ときに便利なことです. Railsはjava…

RNCryptorをswiftで使う

自分でiOSアプリを作り,バックグラウンドのサーバーも自分で実装していたりすると,通信時に暗号化した文字列を送りたかったりする場合が多々あります. もちろんSSL通信にしたりすることも重要なんですが,iPhoneの通信ログ自体はPCにつなぐと割りと簡単に…

Rails4.1にgemでbootswatchを適応する

Webサイトのデザインにおいて,twitter bootstrapを使ったことがある人は多いと思う.Railsに限った話ではなく,俺のようにデザインセンスが芽吹きもせずに育ってしまった人間であっても,ある程度まっとうな,キレイなサイトがつくれてしまう. それはそれ…

UITableViewCellをカスタマイズしたときのheight計算

iOSでオリジナルのUITableViewCellを使っていると,やがてセルごとに高さを変えたくなる事案が発生します. UITableViewControllerにはheightForRowAtIndexというメソッドが用意されており,これをオーバーライドすることでセルごとの高さを調節できます. …

iOS8のUILocalNotificationに関して修正

以前iOS8でのUILocalNotificationに関する記事を書いたかと思いますが,この記事に修正点があったので再度話題にします.iOS8でUILocalNotificationの通知を受け取る - PartyIX iOS8でUILocalNotificationの通知を受け取る - PartyIX iOS8から,LocalNotific…

NSUserDefaultsのためにNSDictionaryの中身を綺麗にしたい

iOSのアプリを作っていると,アプリのデータを保存するときにNSUserDefaultsを使うことがあると思う.ローカルに保存するし,DBを導入するほどではないときに非常に便利に使わせてもらっている. しかし,NSUserDefaultsには少し制限があって,たとえば保存…

【swift】非同期処理後のクロージャの処理が遅いとき

ObjectiveCで用意されていた関数や,ObjectiveC関連の情報をあさっていると,頻繁にクロージャに出くわす. [hogeSuccess:^{ hogehoge; }]; よく,クロージャとかブロック構文とか呼ばれるヤツだ. ^自体はブロックと呼ばれるもので,これを関数の引数に渡し…

AWS SESのBounce率とComplaint率を監視する

AWS内で動かしているアプリケーションで,メールを送りたい時がある. 普通であれば自分でメールサーバーを立ててドメインを使えるようにして……と割とめんどくさい話なんだけど,AWSにはメールを送る専用のSESというサービスがある.RailsからSESを介してメ…

iOS8でUILocalNotificationの通知を受け取る

iOSでのPush通知については話題にされることも多いので,ここではRemoteNotificationとLocalNotificationの違いなどについては特に触れません.今回題材にするのはLocalNotificationのみです. UILocalNotificationの通知を発行する これはObjective-Cの時と…

AWS OpsWorksで使うcustom cookbookのデバッグ環境を整える

AWSのOpsWorksでは,デフォルトのcookbookが用意されている. https://github.com/aws/opsworks-cookbooksOpsWorksというのは,ここに記述されているレシピを実行しながらインスタンスを起動してくれる.しかし,ここに自前でカスタムしたcookbookを突っ込む…

【swift】UITableView,UITableViewCellを使って,カスタムセルのテーブルを作る.

UITabelViewCellを使ってカスタムセルのテーブルを作りたかったので,紹介しておきます. セルについては.xibファイルを用意するものとします. ただし,配置するパーツなどはすべてswif側で用意してしまうので,まさに空っぽのビューだけ作っておけば大丈夫…

AWS CloudWatchをOpsWorksに導入してみた

今までOpsWorksのプロジェクトでは,td-agentでログを取ってS3に保存していた. この辺のツールでいうと,Kibanaあたりの組み合わせが流行りですね.ただ,最近td-agentのリポジトリのバージョンが上がってしまったので,cookbookのバージョンもそれにともな…

UserDefinedでDebugとReleseによる環境変数使い分け

VisualStudioだと,よくdebugモードとreleaseモードの使い分けというのをやっていた. なにしろライブラリによっては,debugとreleaseでインクルードするヘッダファイルが違う,なんて酔狂なものまであったりするので,その辺の設定には嫌でも慣れてくる.だ…

「共通言語」がないときのコミュニケーション能力が欲しい

インターン生が結構な頻度で来ていて,俺も教える機会が増えてきた. そんな中で,なんでコミュニケーション能力を求めるのか,なんとなくわかるなぁーという実感があったので,そろそろ書いておく.初めに言っておくが,題材にしているコミュニケーション能…

AWS SESでBCC込みのメールを配信したい

RailsにはActionMailerというものがあり,メールを送る場合はこいつを使う場合がほとんどかと思います.アプリケーション側はそれでいいのですが,サーバーとしてAWSを使用していると,ドメインの設定などをする都合上,サーバーのインスタンス本体からメー…

github.comに22番ポート以外でアクセスしてソースを取得する

githubはなかなかに便利で,ソースを上げることが多い. そしてサーバー運用時にも,そこからソースを取ってきてデプロイできるように組んでいたりすることがある. ただし,気を使うのが非公開のプライベートリポジトリだ.プライベートなので,ログインし…

has_many throughで,class_nameとかforeign_keyをちゃんと復習してみる

has_many,throughとかでモデルやテーブルの構成を考えるとき,どうしてもカラム名と関連づけるテーブルの名前が一致しなかったり,望み通りの命名で行けない場合がある. もちろん,一つのテーブルが,他のテーブルのレコードを複数持つだけなら,命名はス…

ransackのsearch条件を複数個使いたい

railsのActiveRecordのメソッドの中でも,whereはかなり頻繁に使うし,使い勝手がいい. ただ,これをさらに複雑な条件で絞り込みたいときなどに使うのが,ransackというGemである. https://github.com/activerecord-hackery/ransack 使いどころも多いので…

cocoapodsの素晴らしさに感動した

最近iPhoneアプリが作りたいと思ってしまったので,うっかりXcodeでObjective-Cをカタカタ書いたりするのが楽しくなってしまった. むかーし,専攻科の実験でXcodeを使った開発をちょっとやったことはあったのだけれど. その頃はまだVisualStudio一辺倒で,…

figaroで環境変数を設定したRailsアプリをAWSで運用する際のバグについて

以前Ruby on Railsの開発で便利な,rails_config + figaroの紹介をしていたかと思います. http://h3poteto.hatenablog.com/entry/2014/04/12/232406 Railsでの開発における,環境変数の設定がラクにできるよということで,この組み合わせがすごく便利なので…

html5のcanvasを重ねあわせて,いろいろ遊ぶ

html5のcanvasがなかなか面白い. お絵かき的な使い方がメインにはなるのだけれど,ほとんどすべてjsでいじくり倒せるので,とても面白い. そんなcanvasを重ねてみた. いわゆる,レイヤー的な使い方ができるので,おすすめです. ちなみに,レイヤー用canv…

ニコニコ動画の外部プレイヤーは自動再生させられない

一日中ニコニコ動画の外部プレイヤーと向き合ってみたけど,結論は「無理」ということだけだった.実に無駄だった気がしないでもないけど,そんな休日ですが,みなさんさようなら. ニコニコ動画の外部プレイヤーはそれなりにJavaScriptから操作できます. h…