開発メモ

開発関係のメモをいろいろと。たぶん。

Swift

Swiftにおける名前空間の問題点と、その回避方法

動作を確認した環境 環境 情報 Xcode 8.0 (8A218a) Swift 3.0 Date 2016/10/12 Swiftにおける名前空間とは? モジュールの名前のことです。 そもそも『モジュールとは何か?』と言う話を始めると長くて面倒な割りにメリットが少ないので省略しますが、簡単に…

よくわかるAuto Layout

iOSレスポンシブデザインをマスター 種類 情報 著者 川邉 雄介 監修 所 友太 発行日 2016年6月 Ver.1.0 (電子書籍版) 発行 株式会社リックテレコム 感想 Auto Layoutとその関連技術について、丁寧にまとめた本。 この本で使われてる環境はこんな感じ。 OS …

iOS向けアプリで画像を自動的に切り替え

はじめに 一定の間隔で、自動的に画像を切り替えて表示するアプリを作ります。 作業の手順としては、こんな感じになります。 画像を表示するところまで作成 一定の間隔で処理するためのタイマーを設定 画像を切り替える ソースコードはこちら。 See_Ku / Sim…

iOS向けアプリで複数の画像を切り替え

はじめに 単純に用意した画像を表示するだけで無く、表示する画像をボタンで切り替えられるようにしてみます。 作業の手順としては、こんな感じになります。 画像を表示するところまで作成 ストーリーボードで切り替えに使うボタンを設置 ストーリーボードで…

iOS向けアプリで画像のタップに対応

はじめに 画像をタップして何らかの処理を行うサンプルを作ります。処理の部分は何でも良いんですけど、今回は、別の画面に遷移する処理を行ってみます。 作業の手順としては、こんな感じになります。 画像を表示するところまで作成 ストーリーボードでTap G…

iOS向けアプリで画像を画面に表示

はじめに 単純に、用意した画像を画面に表示するだけのアプリを作ります。 作業の手順としては、こんな感じになります。 ストーリーボードでImage Viewを設置 ストーリーボードでImage Viewとソースコードと接続 画像をプロジェクトに追加 画像を読み込み Im…

詳解Swift 改訂版

種類 情報 著者 萩原剛志 発行日 2016年3月1日 電子版第1刷発行 発行 SBクリエイティブ株式会社 感想 萩原剛志による詳解Swiftシリーズ第2弾。Swiftについて日本語で書かれた資料としては、一番詳しい本。たぶん。 題名の通り『詳解Swift』の改訂版。具体的…

詳解Swift

種類 情報 著者 萩原剛志 発行日 2014年12月20日 初版第1刷発行 発行 SBクリエイティブ株式会社 感想 1年以上前に買ってたんだけど、感想を書き忘れてたみたいなので今さらながら書くorz 『詳解 Objective-C』シリーズの著者らしく、Swiftという言語に絞って…

次の次の画面に一気に遷移する方法のメモ

UINavigationControllerを使って、次の次の画面に一気に遷移する方法のメモです。 ソースコードはこちら。 See_Ku / SkipViewController — Bitbucket https://bitbucket.org/See_Ku/skipviewcontroller 動作環境 環境 情報 Xcode 7.3.1 (7D1014) iOS 9.0 Swi…

Swiftにおけるselfとクロージャーと@noescape

Swiftにおけるselfとクロージャーと@noescapeと簡単にまとめてみました。 ※Swift 2.1時点での情報です 動作を確認した環境 環境 情報 Xcode 7.2.1 (7C1002) iOS 9.2 Swift 2.1.1 Date 2016/3/10 用語説明 selfとは? 公式の情報は The Swift Programming Lan…

Nifty Cloud Mobile Backendのファイルストア・基本編

Nifty Cloud Mobile Backendでいろいろやってみようシリーズ、第5弾(?) 今回はファイルストアを利用して、画像データのアップロード/ダウンロードの処理を試してみました。 ソースコードを公開してあるので、よくわからない部分は直接見て下さい。 See_K…

最大容量/最大サイズを指定してUIImageをNSDataに変換する

せっかくUIImagePickerControllerで画像を選べるようになったので、ネット経由でいろいろしようかと思ったのですが、最近のiPhoneはカメラが良い事もあって、画像データがそこそこ大きかったりします。 そこで、データにした後の容量と長辺の最大サイズを制…

UIImagePickerControllerを使ってみた

iPhone / iPadで、単純に画像を一枚取得するだけであればUIImagePickerControllerを使うのが便利です。 そこでいろいろ調べたのですが、最近のSwiftで書かれた良い感じの例が見つからなかったので、自分で作ってみました。 ソースコードはこちら。 (このペ…

枠線付きのボタン

UIButtonに枠線をつける方法はいろんなところで紹介されていますが、どれもいまいち満足できなかったので、自分で作ってみました。 動作を確認した環境 環境 情報 Xcode 7.2.1 (7C1002) iOS 9.2 Swift 2.1.1 Date 2016/2/25 できる事 以下のような機能が実装…

UITableViewCellに置いたUIButtonがすぐに反応するようにする方法

かなりマニアックなtipsシリーズです。 UITableViewCellにUIButtonを置いた場合、タッチしてすぐに指を離すとボタンがハイライト状態になりません。プログラム的に見ると、ちゃんと押されているのですが・・・ 使ってる側から見ると、まったく反応していない…

UISearchBarで文字が入力されていない状態でもボタンを押せるようにする方法

UISearchBarを普通に設置しただけだと、文字が入力されていない状態ではボタンを押せません。 これを押せるようにする方法を調べてみました。 動作を確認した環境 環境 情報 Xcode 7.2.1 (7C1002) iOS 9.2 Swift 2.1.1 Date 2016/2/22 押せるようにする方法 …

Nifty Cloud Mobile Backendのデータストア・基本編

Nifty Cloud Mobile Backendでいろいろやってみようシリーズ、第4弾(?) 今回は、データストアの基本的な使い方を調べてみました。具体的には、オブジェクトのサブクラス化・保存・読み込み・更新・削除などです。 とりあえず、ソースコードを公開してある…

Nifty Cloud Mobile Backendを使ってみる

Nifty Cloud Mobile BackendのSDKをプロジェクトに組み込んで、動作を確認するまでのメモです。 動作を確認した環境 環境 情報 Xcode 7.2.1 (7C1002) iOS 9.2 Swift 2.1.1 Date 2016/2/14 1. ユーザー登録 以下のサイトにアクセスしてユーザー登録を行います…

Nifty Cloud Mobile Backendとは?

※以下の情報は個人的に勝手にまとめたものです ※確実な情報は、公式サイトを参照してください 確認した環境 環境 情報 Date 2016/2/13 Nifty Cloud Mobile Backendとは? Nifty Cloud Mobile Backendは無料で始めることが出来るmBaaSです。 mBaaSでサーバー…

Xcodeがおかしいときの対処法

『Xcodeがなんとなくおかしいんだけど原因がよくわからない』という場合の、対処法のまとめです。 上から順番に試します。 Xcodeを再起動 OSを再起動 プロダクトのクリーン Xcodeのメニューから[Product] - [Clean]でクリーンを実行。 Build Folder全体の削…

ミュージックプレイヤー関係のネタのまとめ

はじめに 音楽関係のアプリを立て続けに2本作ったので、細かいネタをブログに書いたもののまとめ。 最終的に、こんな感じのアプリが出来上がる。たぶん。 Xcodeでプロジェクトを作成 Xcodeでプロジェクトを作成、開発をやりやすくするため、細かい設定をい…

シャッフルに対応

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 シャッフルに対応 完全に忘れてたシャッフル関係の処理に対応。 シャッフルする前とあとの両方のプレイリストを管理するのも面倒なので、そもそものプレイリストを作成…

リピートに対応

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 リピートに対応 すっかり忘れていたリピートへの対応。 リピートと一言に言ってもいろいろあるんだけど、ここでは『全曲リピート』と『リピート無し』の2つの状態に絞っ…

セルの選択で対応する曲を再生

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 セルの選択で対応する曲を再生 せっかくテーブルビューにプレイリストを表示しているので、セルを選択して曲を再生できるように修正。 とりあえず、didSelectRowAtIndex…

アイコンを変更

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 アイコンを変更 今回は、こんな手順でデータを作成してみた。 iPadでneu.Drawを使って元になるデータを作成 データをPDF形式で取り出し gimpに取り込んで切り出し 大き…

アプリ名の変更

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 アプリ名の変更 ホーム画面に表示されるアプリの名前が途中で切れてるのは気になるので、短い名前に修正しておく。 [Targets] - [Info]のCustom iOS Target Properties…

playbackStateChangedでボタンがちらつく問題に対応

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 playbackStateChangedでボタンがちらつく問題に対応 具体的に説明すると、アプリを起動して最初の再生で、PauseとPlayのボタンがちらつく問題。これは、MPMusicPlayerCo…

isPlayingがおかしくなる問題に対応

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/7 isPlayingがおかしくなる問題に対応 問題の詳しい内容はこちらを参照。 MPMusicPlayerController::playbackStateがおかしくなる問題 - 開発メモ http://seeku.hateblo.j…

UITableViewにアートワークを表示

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/6 UITableViewにアートワークを表示 曲名やアーティスト名だけだと画面が寂しいので、アートワークを表示するようにしてみる。 単純にアートワークを表示するだけなら意外…

UITableViewに曲の情報を表示

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/6 UITableViewに曲の情報を表示 プレイリストを表示するUITableViewを管理するためのクラスを作成。iOS開発の入門書だと、DelegateやDataSourceをViewControllerに持たせ…

プレイリストを表示するためのUITableViewを作成

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/6 プレイリストを表示するためのUITableViewを作成 UITableViewをViewControllerにドラッグ&ドロップ。 適当にサイズを調整して、AutoLayoutを設定。今回はこんな感じに…

クラウドにあるアイテムを除外

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/6 クラウドにあるアイテムを除外 自分で作成したプレイリストを試しにprintln()で出力してみると、iPhoneに転送してない曲までプレイリストに入ってることがわかる。これ…

プレイリストを自分で作成

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/6 プレイリストを自分で作成 プレイリストを画面に表示したいんだけど、setQueueWithQuery()で再生キューを設定した場合は中身を調べるのが面倒。というわけで、自分でプ…

再生状況に応じて、ボタンの状態を変更

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 再生状況に応じて、ボタンの状態を変更 曲の変更と同様に、再生状況の通知にも対応しておく。やっていることは、曲の情報が変化した時とほぼ同じ。たぶん。 MusicPlayer…

再生中の曲の情報を表示

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 再生中の曲の情報を表示 まず、曲の情報を表示するためのラベルを用意。 今回は、こんな感じにしてみた。 曲名を表示するためのUILabelと、アーティスト名とアルバム名…

MusicPlayerからの通知に対応

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 MusicPlayerからの通知に対応 再生している状態や曲の変化は、MPMusicPlayerControllerからNSNotificationCenterを通して通知されるので、これに対応する。 具体的には…

再生関係の基本的な操作に対応

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 再生関係の基本的な操作に対応 MusicPlayer関係の処理が増えるのは目に見えてるので、MPMusicPlayerControllerを管理するためのクラスをあらかじめ用意。再生のテスト用…

ボタンをViewControllerに接続

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 ボタンをViewControllerに接続 ツールバーに配置したボタンが押された時、プログラムから処理ができるように、アクションを接続しておく。 Main.storyboardを開いてる画…

ViewControllerにUIToolbarを配置

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 ViewControllerにUIToolbarを配置 もう少し具体的に言うと、ViewControllerにUIToolbarを配置して、その上に、必要となるUIBarButtonItemを設定する。 まずは、Main.sto…

UIToolbarで使用するイメージを作成

UIToolbarで使用するイメージを作成 もう少し具体的に言うと、UIToolbarに載せるUIBarButtonItemで使用するイメージを作成。 ここでは簡単に手順だけ紹介。今回は、あえて手書きアイコンを作ってみた。 iPadでneu.Notes+を使って元になるデータを作成 データ…

スキームを追加/修正

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 スキームを追加/修正 既存のスキームをコピーしてDebug用を作成。最初から用意されてるスキームはRelease用に設定を修正しておく。 スキームって言うのは・・・ 簡単に…

Versionを修正

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 Versionを修正 いきなり1.0からスタートも微妙なので、早めにVersionを修正しておく。 具体的には設定画面の[Targets] - [General]の中の[Identity]で指定可能。 とりあ…

Deployment Targetを修正

動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/5 Deployment Targetを修正 プロジェクトのDeployment Targetを修正しておく。Deployment Targetと言うのは、簡単に言うと、アプリが動作するのに最低限必要となるiOSのバ…

Xcodeでプロジェクトを作成

はじめに 音楽関係のアプリを立て続けに2本作ったので、ついでに、細かいネタをまとめておこうかな、と。 せっかくなので、基本的なアプリの作り方から。 動作を確認した環境 環境 情報 Xcode 6.3.2 (6D2105) iOS 8.3 Swift 1.2 Date 2015/6/4 Xcodeでプロ…

SwiftのGenericsでハマったメモ その2

昨日の話の続きです。こっちは本当にハマった話。たぶん。 動作を確認した環境 環境 情報 Xcode 6.3 (6D570) iOS 8.3 Swift 1.2 Date 2015/5/16 1つめのプロトコル Genericsで線形補間は、一応、普通に動くようになりました。 /// 線形補間で必要になるプロ…

SwiftのGenericsでハマったメモ

SwiftのGenericsで少し凝ったこと(?)をやろうとしてハマったのでメモ。 動作を確認した環境 環境 情報 Xcode 6.3 (6D570) iOS 8.3 Swift 1.2 Date 2015/5/15 1. はじめに 普通に、線形補間を行う関数を書いてみた。とりあえず、型はIntで。 /// 単純な線…

UICollectionViewで画面の回転に合わせてCellのサイズを変更する良い方法

画面サイズに合わせてUICollectionViewのCellのサイズを決めている場合、画面の回転をどのタイミングでUICollectionViewに通知するのが良いのか? そこそこまじめに調べてみたのでメモ。 動作を確認した環境 環境 情報 Xcode 6.3 (6D570) iOS 8.3 Swift 1.2 …

特定のViewだけAutoLayoutをオフにする方法のメモ

基本的にはAutoLayoutを使用して配置するけど、特定のViewの中だけ自分でframeを指定したい時、そのViewだけAutoLayoutをオフにする方法のメモ。 動作を確認した環境 環境 情報 Xcode 6.3 (6D570) iOS 8.3 Swift 1.2 Date 2015/4/27 AutoLayoutをオフにしな…

Xcode 6.3でローカライズする時の作業メモ

Xcodeも6.3になったことだし、ローカライズについてちゃんと調べなおしてみたメモ。 動作を確認した環境 環境 情報 Xcode 6.3 (6D570) iOS 8.3 Swift 1.2 Date 2015/4/12 ローカライズ作業の概要 実際にローカライズを行う時の手順はこんな感じ。 NSLocalize…

『In-App Purchase』をONにした時のメモ

[Targets] - [Capabilities]で『In-App Purchase』をONにした時、何が起こるのかを調べた時のメモです。 動作を確認した環境 環境 情報 Xcode 6.2 (6C131e) iOS 8.2 Swift 1.1 Date 2015/4/2 起こったこと StoreKit.frameworkが追加される [Linked Framework…