Simple gadget life programming diary

Simple gadget life の中の人によるプログラミングメモ

BacklogのAPIをたたいて、情報を集計してSlackへ通知するプログラムを作ったよ。

マネジメント業務を効率化したくて、BacklogのAPIをたたいて、必要な情報を集計してSlackへ通知するプログラムを作ってみました。 HerokuにPythonのBottleでWebサーバ立てて、定期的にプログラムを動かす感じです。 取得できる情報は以下のようなものです。 …

Swift事始め。サンプルプログラムを作ってGitHubへアップロードしてみた。

これまで、自分のアプリ作成(もう少しかかる。。)やサーバサイドの学習をしていた関係上、Swiftに手を出さないままここまで来てしまいました。 アプリ作成のモチベーションアップのためにもこの辺でSwiftにシフトするのもありかなと考えてちょっとGW中に触っ…

Mac+Pythonでフォルダ内のmp3ファイルをcafファイルに一括変換するスクリプト

お手軽スクリプトです。 フォルダ内の再帰検索やエラーハンドリングには対応していません。 指定したフォルダ内にすべてmp3ファイルが存在する前提です。 pathの部分にmp3ファイルを置いたフォルダの場所を指定してください。 すこしハマった所としてはglob…

iOSでセクションタップ方式のアコーディオン型TableViewライブラリを作ってみた。

iOS

UIKitのUITableViewだとどこかをクリックすると伸び縮みするようなジャバラの構造にはなっていません。 また、 実現するためにはそこそこのコードを書かなければなりません。 幾つかサンプルのコードがあったけれど、セルの1行目をセクションヘッダーに使っ…

UITableViewの上にヘッダー分の隙間が開くときの対処法

iOS

発生するタイミング StoryboardでViewControllerに対してUITableViewを最初に貼り付けた場合。 ViewControllerのオプションで"Adjust Scroll View Inserts" がオン または "Under Top Bars"のチェックがオフになっている場合。 上記は以前ScrollViewで起こっ…

Google-Maps-for-Railsを使ってマップを表示する際、初期表示時の縮尺を変更する方法。

タイトルではrailsのライブラリの名前をあげていますが、javascriptの話です。 Google-Maps-for-Rails このリンク先のgithubのREADMEに記載されているサンプルの通りにviewに対してコードを記載した場合、マークを1つだけ表示する場合、最大ズームになってし…

Twitter認証を要求する際、謎の401エラーとなるときの原因のひとつ

サーバの時刻が実際の時間とズレている。 VirtualBoxで開発している場合、立ち上げっぱなしでクライアントマシンをスリープしていると、エミュレートしているOSもスリープしてしまう。 その場合、エミュレートしているOSの時刻を正しく修正する必要がある。 …

railsでgenerateで生成したあとで取り消すコマンド

[hoge@localhost app]$ rails g controller plan create app/controllers/plan_controller.rb invoke erb create app/views/plan invoke test_unit create test/functional/plan_controller_test.rb invoke helper create app/helpers/plan_helper.rb invoke…

railsでhas manyオブジェクトをViewで編集する方法

ネストされたオブジェクトの中身を画面表示する。 has_manyで紐付いているオブジェクトの中身を表示する方法がわからなかったのでメモ。 モデルの構成は以下のとおり。 class Event < ActiveRecord::Base # attr_accessible :title, :body attr_accessible :…

App Extensionでアプリ間連携をした際、host appの挙動調査

iOS

こちらのサンプルを使用させていただきました。 [iOS 8] App Extension #4 – Action Extension | Developers.IO ※今後追加していく予定。 ・host側のアプリはバックグラウンドには入らずcontain appを呼び出す。 ・contain appでは通信可能? →webViewは動…

Ruby(Rails)にAPI作成支援ライブラリGrapeで任意の返却値を返す方法

サンプルを見ているとRailsのモデルをそのまま返すというサンプルが多く、モデルのなかでも必要な項目(idやタイムスタンプを除いて)を返すというサンプルがなかったのでメモ。 module TestApp class API < Grape::API prefix 'api' version 'v1', using: :pa…

iPhoneアプリでOAuth2.0認証からInstagramのAPIを叩いて情報を取得するまで。

iOS

InstagramなのでOAuthは2.0。 Webへのアクセスは有名ドコロのライブラリを使用。 使用するライブラリ OAuth2 : OAuth2Client HTTP通信 : AFNetworking 画像の非同期ダウンロード : SDWebImage 各ライブラリの詳細については以下の参考情報を参照。 参考情報 …

UIScrollViewで上に余分な隙間が出来てしまう時の回避方法

iOS

追記 こちらに解決方法を書きました。 UITableViewの上にヘッダー分の隙間が開くときの対処法 - Simple gadget life programming diary SCrollViewのエリアをグレーに、貼り付けるViewを赤にして再現。 ちなみにグレーのエリアと赤いViewは同じ高さ。下のキ…

プログラム上でStoryboardのViewControllerを呼び出す。

iOS

Storyboardの名前はファイル名。 デフォルトだと「Main_iPhone.storyboard」となっていて、拡張子より前の部分が名前となる。 呼び出すViewControllerはStoryBoardの定義でStoryBorad IDが定義されていることが必須。 コードは以下の通り。 ちなみにモーダル…

Rubyでファイルのコピーと拡張子の変更を行うプログラムを書いてみた。

あまり綺麗なやり方では無いと思いますが、こうすれば出来ますよというサンプルということで載せておきます。(バージョンは2.0.0) ディレクトリを削除するにはディレクトリ内が空である必要がるので、先にファイルの削除をした上でディレクトリを削除。 その…

Mac移行後にiOSアプリをリリースする際は"Provisioning Profiles"の移行もやっておく

iOS

タイトルのままですが、リリースするときにすぐに分からなかったのでメモ。 リリースする際にXCodeの以下の場所で「Provisioning Profiles」の設定を行う。 Project→Build Settings→Provisioning Profiles うまくProvisioning Profilesが設定されていない状…

WordPressでBootstrapを使う際、画像サイズを可変させる方法。

WordPressが出力するimgタグをそのまま使った場合、Gridシステムを使ったとしても画像サイズは変更されず横が切れて表示されてしまう。これを回避するために以下の対応を行う。 投稿記事の場合 functions.phpに以下のコードを追記する。 やってる事は、一度W…

UNIXマシンでのオプションコマンド、ハイフンが1つの時と2つの時の違い

ハイフン1つと2つの違い。 Yahoo!知恵袋より GNU系のマシンのオプション指定。 ハイフン1つだと重ねることができる。 ex. ls -aF ハイフン2つだと重ねられない。

iOSアプリのバージョンアップ申請手順

iOS

iTunes Connectへログオンし、 Manage Your Apps→対象となるアプリアイコンを選択→New Versionと書かれたエリアのボタンをクリック。 書かれている内容に従って選択し、Waiting For Uploadとなるまで進める。 その後はこちらの「Xcode でアプリをビルドして…

Xcodeでコードに自動設定される"Created by"と"Copyright"の元ネタ

iOS

Xcode5にて調査。 "Created by"について →システム環境設定→ユーザーとグループ→現在のユーザーにて表示されているフルネーム "Copyright"について →Xcodeでプロジェクトを新たに作成する時に入力するOrganization name

デバッグ時のみ有効となるようにNSLogをマクロ化して使う

iOS

デバッグ時にNSLogを使って動作確認するが、本番モジュールでは無効化したい。 そのため、マクロを用いて別関数名で定義する。 //ヘッダーimport文の下あたりに定義 #if DEBUG #define MyLog(fmt,...) NSLog((fmt),(__VA_ARGS__)) #else #define MyLog(fmt,.…

Objective-Cのプロトコルの宣言と定義について。

iOS

ネット上で各種サンプルをみていると、宣言時と定義が同じタイミングで行われており、戻り値の定義でvoid以外が使えなかったり、引数にNSArrayや独自クラスなどが使えなかったりしていた。 どうすれば使えるかという事についてメモ。 //ヘッダーファイル #im…

XCTestによるユニットテストにおけるテストメソッドの書き方

iOS

必ずメソッドの最初の文字は"test"とすること。 ex.testExample こう書かないと反映されない。 マニュアルは現在存在しない? 古いものならあるっぽい。→ Xcodeユニットテスト ガイド 上記のマニュアルではユニットテスト結果マクロの書き方が"STxxxxx"とな…

Wordpressのソースをgitで管理するための準備

どういう管理が理想か? pull requestという開発フローがトレンド masterでごちゃごちゃ修正は行わない。綺麗な修正履歴を残す事を目的にmasterから派生させたブランチを作り、そこでmasterにマージできるまで開発を続ける。 ステージング環境を用意し、そこ…

CocoaPods使用時にバージョン指定を誤りインストールできなかったのでメモ

podfileの記載 platform :iOS だけだとデフォルトのiOS 4.3向けと認識される。 iOS7をターゲットとしているのならば、 platform :ios, '7.0' と記載すること。 開発レシピ:Objective-Cのライブラリ管理ツール CocoaPodsさんに記法がキレイにまとめられてい…

CocoaPodsの導入で参考になったサイト

iOS

CocoaPodsとは ライブラリ管理ツール。Rubyのgem、Linuxのyumみたいなもの。 参考になったサイト いろいろ見て回ったけど、これが個人的にわかりやすかった。 Objective-C - CocoaPodsでPodの利用&作成のメモ - Qiita [キータ] 導入後の注意点 XCode起動時…

gtm-oauth2を使ってinstagramのアクセストークンを取得する。

iOS

このサイトが分かりやすい How to Use OAuth 2.0 with KinveyKit iOS Tutorial | Kinvey 注意点 リダイレクトサイトを入力する際、最後にスラッシュを入れる事。 ○:http://goes-nowhere-does-nothing/ ×:http://goes-nowhere-does-nothing スラッシュを入…

Objective-Cにおけるカテゴリとは

iOS

既存のクラスにメソッドのみを付け加える事。 継承はクラスすべてを引き継ぎ、オーバーライドやインスタンス変数を加えたりできるが、それとは違う。 あくまでメソッドを追加するのみ。 カテゴリを使う場合の注意 Other Linker Flagsの設定に"-ObjC"をつける…

iPhoneアプリで3.5インチ端末と4インチ端末を見分ける判定文

iOS

突貫だったので、このメソッドをAppDelegateに作成。 スクリーンサイズを取得して4インチかどうかを判定するだけの文。 これをif文の条件として使い、Viewの配置の考慮に使う。 判定分 -(BOOL)is4inchDisplay { CGSize screenSize = [[UIScreen mainScreen]…

XCode5でリリースの際に参考になったサイト

iOS

XCode5用リリース手順 よく分かる!iOS アプリのリリース手順のまとめ | Developers.IO4-Inch Retina Display Screenshots ... XCode4時代にお世話になったページ 【まとめ】iPhoneアプリ Xcode4での iTunesConnectへ申請する方法まとめ - 暇人がゼロからiP…