Simple gadget life programming diary

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

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…

OAuth認証ライブラリを探してみた。

iOS

OAuth1と2ってどっちを使えばいいか? 通信を行うAPI次第。現在の所多くは1を使っている。 ライブラリの導入でわかりやすそうなページへのリンク OAuth1 [XCODE] iOSアプリでOAuth認証を行う、はてブAPIを利用する - YoheiM .NET OAuth2 φ( ̄ー ̄ )メモメモ iOS…

Webアイコン"Genericons"を並列に並べて色を付ける

CSS

こんな事ができる やり方 HTML <div id="followmeblock"> <a href="https://twitter.com/jtaka1012" target="_blank"> <span class="twitter"></span> </a> <a href="https://plus.google.com/b/102861128808523144525/102861128808523144525/posts" target="_blank"> <span class="googleplus"></span> </a> </div>

ウェブアイコン"Genericons"の使い方 (Wordpress)

CSS

Genericons - a free, GPL, flexible icon font for blogs! Genericonsからダウンロードしたフォルダをサーバ上へ配置する。 その際アクセス権限変更漏れに注意 スタイルシートにGenericonsのCSSを定義する。 <link href="CSSファイルのパス" rel="stylesheet" media="screen"> Wordpressだとこんな感じ </link>

Xcode(iPhoneアプリ)のプロジェクト名の変更メモ

iOS

こののサイトがとても参考になりました。 万が一のために必ず今あるプロジェクトをコピーした上で変更作業を行いましょう。

Bootstrapでレスポンシブに対応した画像の貼付けはResponsive imagesを使う。

CSS

マニュアル通り、Responsive imagesというクラスをしてして表示すればよい <img src="..." class="img-responsive" alt="Responsive image"> レスポンシブがイヤなのであればクラス指定は外す。 画像の中にさらに画像を入れるといった使い方をしたいのであれば、cssでbackground-imageで背景として登録した上で、さらにhtml…

iOS7ではAlertViewの文字の色は変えられないのか?

iOS

困っている事 このView中の青い文字を違う色にしたいのだが出来ない。 やってみた事 UIAlertView *alert = [UIAlertView new]; alert.tintColor = [UIColor colorWithRed:0.498 green:0.275 blue:0.718 alpha:1.0]; 結果は青色のまま。 stackoverflowにも書…

iOSアプリのバージョンを表示するメソッド

iOS

TableViewなどに表示する際に使用するメソッドがこれ [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; NSString形式で取得できる。

iOS7用&4inch iPhone用のアイコン画像とスプラッシュ画像の設定方法

iOS

アイコン画像 用意する画像サイズ:120×120の.pngファイル ファイル名:Icon-60@2x.png Xcodoでの設定方法 ファイルの置き場所:多分どこでもよい どうすれば認識してくれるの?:Project→Targets→アプリ名の順にクリック Generalの中にApp Iconsという項目…

imagePickerのナビゲーションバーの文字の色を変更する

iOS

こんな事が出来る やり方 UIImagePickerController *picker = [UIImagePickerController new]; picker.navigationBar.tintColor = [UIColor colorWithRed:0.498 green:0.275 blue:0.718 alpha:1.0]; [self presentViewController:picker animated:YES comple…

UInavigationBarの色の変更とオリジナルボタンの設定

iOS

こんな事が出来る やり方 色の変更 self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.498 green:0.275 blue:0.718 alpha:1.0]; ちなみにツールバーの色の変更はこんな感じ UIToolbar *_toolbar; _toolbar.tintColor = [UIColor…

iOS内でアイコンフォントを使う方法

iOS

こんな事が出来る やり方 ionicons-iOSというライブラリを使用する。 CocoaPodsを導入していない場合、githubからライブラリをダウンロード。 plistへの設定も忘れずに。githubに詳しく書いてある 14/5/30追記 CocoaPodsに導入する際は、podfileに以下の記述…

フラットデザイン風Webフォントと使い方

CSS

フォントファイルを配布しているサイト M+ FONTS M+ OUTLINE FONTS | DOWNLOAD解凍コマンド tar Jxvf mplus-TESTFLIGHT-057.tar.xz展開されたフォルダをCSSファイルが置かれているフォルダ等へ配置CSSファイルへの記載方法 @font-face { font-family:mplus-1…