javaSEがiOSアプリデザイン、開発に挑む日記

本業java SEがswift、デザインの勉強したことを残しておくブログ

スケール学習ピアノアプリ Scale navi piano

申請が通ったので宣伝。 コルトレーンのblue trainを意識した感じで。 基本的なピアノ機能に加えて それぞれのキーのコードを表示 また、音楽を再生しながら再生できるので 耳コピにもどうぞ。 タダだし。 Scale Navi Piano Katsuyasu Murata ミュージック …

swift 円を描く

そこまで難しくなかったので画像用意ではなくて これで良いかも // 円の描画 let ovalShapeLayer = CAShapeLayer() //線 ovalShapeLayer.strokeColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1).CGColor //塗りつぶし ovalShapeLayer.fillColor = UICo…

swift ソースでグラデーション背景を作成

グラデーションのある背景はイラレとかで作らなきゃいけないと思っってたけど 簡単なものならソースで作れる。 //グラデーションカラー一覧 let topColor = UIColor(red:0.07, green:0.357, blue:0.592, alpha:1) let midColor = UIColor(red:1.0, green:1.0…

Xcode submit時エラー ITMS-90032 (appiconのエラー)

動作も問題なし validateでエラーもなし でもsubmitでエラー... ERROR ITMS-90032:“Invalid Image Path - No image found at the path referenced under key 'CFBundleIcons':AppIcon120x120” appIconの該当画像を削除したらsubmitできるようになりました。 …

xcode iPad用アイコンの追加

Deviceをuniversalにして、 最初に登録してあるImages.xcassetsに アイコン画像をちゃんと登録しても 実行時にiPadのアイコン画像ないよ〜とワーニングが出る。 そんな時は新しいアイコンセットを作成して そっちを読み込むようにする 新しいアイコン画像登…

macで切り取り相当のショートカット

mac

windowsでは不可欠なctrl + xでの切り取り。 macではないらしい... それ相当のショートカットとしては まず、command + cでコピーし、 貼り付け時にoption + command + vで コピー元から移動となり、 切り取りと同じ操作に。 家と職場でwindowsとmacを行った…

タップした時、枠が波紋のように広がるアニメーション

色々作ってるうちに、こういう細かいとこがUXというのかなと。 func anyTapGesture(sender: UITapGestureRecognizer){ let tmpX:CGFloat = sender.view!.frame.origin.x let tmpY:CGFloat = sender.view!.frame.origin.y let tmpH:CGFloat = sender.view!.fr…

swift 音楽を再生しながらアプリで音を鳴らせるようにする

耳コピとか、音楽系アプリなら必須ですね。 cafファイルを再生する mp3ファイルをcafファイルに変換するのは以下ターミナルで実行 afconvert -f caff -d ima4 【変換するファイル名】.mp3 【出力するファイル名】.caf 複数再生できるよう設定を変更 let audi…

swift NSBundle.mainBundle().pathForResource()でファイルがあるのにnilになる時の対処

mp3ファイルをcafに変換して入れ直したらnilで落ちるようになってはまったのでメモ mainBundle()はテストでは使えないよ、っていうのもあったけど ファイルを入れる時に以下にチェックを入れるとうまくいった。 違う方の対策はswiftでいうクラスの取得がわか…

macのスクリーンショットが便利

mac

command + shift + 4で選択範囲のスクリーンショットが撮れる。 便利... 何かの手順をメモする時は活用しないとですね。 //

Illustrator アートボードを新規作成した後にサイズを調整する

Illustrator、photoshopで慣れないのが オブジェクトを新規作成した後のサイズ調整メニューを見つけるのが なかなか初心者には直感的にはわからない感じで... オブジェクトのサイズは変形ウィンドウで調整。 アートボードは... 画面右上のこれ。 ちゃんと覚…

swift UILongPressGestureRecognizerのアクション

UILongPressGestureRecognizerの長押し認識を使う時、長押しを認識と離す時で2回アクションが起きるのを制御するメモ senderのstateで判別ができる。 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view…

天気アプリ ScrollWeather

アプリ申請通ったので展開。 OpenWeatherMapの天気情報を使用した天気アプリ。 現在地はもちろん、全世界の天気を表示できる。 ただ、日本に特化していないので他のアプリとの差異がかなりあったり... こういうふわっとしたテイストが好きな方はどうぞ。 無…

英和辞書データ

アプリを作る中で、そもそもコンテンツがないといくら作りたくても作れないわけで。 そんな中、パブリックドメインの英和辞書データを配布しているところが。 無料 英和辞書データ ダウンロード - Web便利ツールkujirahand.com パブリックドメインだから本当…

swift storyboardで画面サイズに合わせたviewのconstraints

複数機種で綺麗にレイアウトしたい時、 それぞれの機種に対してstoryboardファイルを作るか、コードの中でガリガリやらなきゃいけないかと思っていたら、やり方があった。 親viewに対してEqual Height(width)を指定 画面サイズに合わせて伸縮する辺を親view…

swift ロケールから自分のタイムゾーンへ時刻変換

端末のロケールからユーザのタイムゾーンに時刻変換するメソッド。 GMTで送られてくるAPIを使用するときとかに。 func changeDateFormatM(dt_txt:String)->String{ var date_formatter: NSDateFormatter = NSDateFormatter() date_formatter.timeZone = NSTi…

swift nilチェック

nilになることがあって落ちるのを防ぐためにif文でチェックする方法。 記述方法をいつも忘れて調べなおしてるのでメモ。 以下はappDelegateに持たせた変数がまだセットしてない(nil)かチェックしてから使用する例 if let nilCheck = appDelegate.isMapSelect…

swift 標準マップの表示

純正マップになってから全然使ってないけど ライセンスとかアクセスが制限されない(と思われる)ので ちょっと使いたいぐらいなら良いかも import UIKit import MapKit class SelectLocationViewController: UIViewController, MKMapViewDelegate { var lat =…

swift iAd 一番簡単な方法

テスト的に入れてみたiAd 収益でクラスとかではないので一番簡単な方法で実施 iAdフレームワークのリンク プロジェクトの「general」→「Linked Frameworks and Libraries」で「+」クリック iAdで検索して「iAd Framework」 を追加 iAdフレームワークをインポ…

swift 天気アプリ

先月までにと、自分的ノルマで作成してきたアプリを申請 取得した天気をスクロール形式で表示。 背景はひとつながりの草原で、 天気のよって暗さとかが変わるような仕様。 結局こんな感じで落ち着く。 審査が早く通れば良いなと。 にしても、 openWetherMap…

swift 文字列の一部を取得

javaだとsubsting()で考えるまでもないけど swiftだと型の罠にハマったのでメモ。 let hh:String = (formatDate as NSString).substringWithRange(NSRange(location: 6,length: 2)) as String substringWithRange()で指定部分を取得できるけど 型がNSString…

swift Reachabilityを使う

iOS Developer Libraryに通信状況を確認できる「Reachability」なるライブラリがあった。 誰かのライブラリを使わないって良い... ライセンスとかで使用条件を確認したりするのが結構疲れる... Reachabilitydeveloper.apple.com そして、テストして気がつい…

swift 画面間で値を共有する

今までは画面遷移の際にセグエのidentiferから次の画面を特定して、次の画面のパラメータに値を入れて... とか面倒くさいことやってたけどこんな簡単に出来るんだったとは... AppDelegateに変数定義 class AppDelegate: UIResponder, UIApplicationDelegate …

swift 画像をリサイズして使用する

Retina対応とかで2xのサイズで用意してサイズは1xとしたいことが多かったりする。 let orgImg = UIImage(named: "orgImg.png") let resizedSize = CGSizeMake(365, 400); UIGraphicsBeginImageContext(resizedSize); orgImg?.drawInRect(CGRectMake(0, 0, re…

swift フォアグラウンド状態になった時に処理を実施

バックグラウンドにしたアプリを再度フォアグラウンドにした時に更新させるのを検討した時、意外に面倒くさかったのでメモ。 AppDelegate.swiftのapplicationWillEnterForeground()でviewControllerに通知を送るようにする func applicationWillEnterForegro…

NSURLSessionの後処理にラベル更新処理書いたらダメ

ちゃんと理解して使っていないからこうなるんですが 引っかかったのでメモ JSONで天気情報をAPIで取得して画面表示 を検討して色々やっていたら ちゃんとコンソールのログで取得できているのに 画面表示には数十秒遅れて反映される現象が... let url = NSURL…

swift UIScrollViewでスクロールさせるのにcontentSizeの指定が必要

勘違いしていてハマったのでメモ。 画面の一部がスクロールするような感じにしたくて UIScrollViewをstoryboardに配置して実行。 最初、UIScrollView自体のサイズがスクロールするサイズだと思っていて スクロールしないで悩んでたら そうじゃなくて、 「con…

Illustratorで同じ処理を繰り返すショートカット

感動して、ちゃんと覚えておこうと思ったのでメモ。 太陽マークを書こうとして 円の周りにうまいこと三角を並べられないかなぁと調査した結果 回転ツールと同じ作業を繰り返すショートカットで簡単射掛けることが発覚。 回転ツール 回転ツールを選択する前に…

swift viewDidLoadとviewDidAppear

webページでは毎回表示時に画面更新が走るけど iOSアプリでは最初に用意されているviewDidLoad()では最初の一回目の表示にしか呼ばれない。 そんな時はviewDidAppear()を追加。 画面遷移して戻ってくる際に呼ばれるので 別画面でデータ更新して戻る。戻ると…

swift アプリでテキストの文字数制限

簡単だけどメモ htmlみたいにmaxlengthで制御できたら良いのに... func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { // 変更後の内容を作成する var tmpStr = textField…