2017/02/03

以前に、TagLibをSwiftで使うためのframeworkを作る方法を記載致しましたが、1.11.1だとうまくコンパイルできなかったので、試行錯誤してみました。


どのような事象が発生するのかというと、同じようにコンパイルすると、frameworkが作られません。
taglib.aができあがり終了します。


 
2016/12/27

Swift

Swiftで何かアプリを作ろうか、修正しようかと思うと、概ねxcodeのバージョンが上がっていて、さらにSwiftのバージョンも上がり下位互換が無いので、いつも苦労しています。
こんなにころころ仕様が変わるのって普通なのでしょうか。
正直、辟易としています。
と言っても解決しないと先へは進めませんので、頑張ります。


 
2016/04/14

Swift

 

久しぶりにXcodeを開いたら、Swift3.0以降使えなくなるものが出てくるので直してねというwarningが出ていました。

今回、そんなに多くは無かったのですが、見ていきましょう。


 
2015/09/09

Rocomotionは14周年を迎え15年目に入りました。
ここまで来られたのも皆さまのおかげです。

 

ありがとうございます。

 

BlackBerryも下火になってしまい、レガシーOSでの更新を行う環境も無くなってきてしまっているので、これ以上の更新は無いと思います。

 

今後、何を作っていくかはまだ決めていませんが、最近はSwiftが楽しいなと思います。
今度SwiftはiOSだけではなく他のプラットフォームにも使えるようにしていくと言っていたので、とても楽しみにしています。

まだまだ、Javaも好きですし、Swiftも好きですし、言語は何でも好きです。
適材適所で使っていければいいなと思っています。

 

今後iOSがAppleへの登録なしに実機デバッグができるようになりますので、iOSアプリにも手を出していこうかと思っています。

 

なんだかんだで開発が好きなので、細々とサイトを運営し、ブログも更新しながら開発もやりたいと思います。 

 

今後ともよろしくお願い致します。

 

2015.9.9
Rocomotion UG

 

 
2015/09/01

TagLib

 

MacでTagLibをビルドして使えるようにする方法。
そしてSwiftから利用する方法。


  1. TagLibから好きなバージョンをダウンロードする。今回は最新の1.10BETAを使ってみる。
  2. 解凍する。
  3. Terminalを使って解凍したディレクトリへ移動する。
  4. TagLibのページに書いてある方法だとうまくいかなかったので、以下の内容でビルドする。今回は10.9のSDKを使用する。
    cmake -DCMAKE_BUILD_TYPE=Release \
    	-DBUILD_FRAMEWORK=ON \
    	-DCMAKE_C_COMPILER=/usr/bin/gcc \
    	-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    	-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/ \
    	-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \
    	-DCMAKE_OSX_ARCHITECTURES="x86_64"
    64bitのみを対象にしているので、32bitでも使う場合は、i386も追加した方が良いと思います。
    -DCMAKE_OSX_ARCHITECTURES="i386;x86_64"へ変更
  5. makeする。
    make
    sudo make install
  6. /Library/Frameworks/の中に、tag.frameworkとtag_c.frameworkができあがるので、tag.frameworkをどこかにコピーする。
  7. terminalでコピーしたtag.frameworkがある場所に移動する。
  8. install_name_toolを使ってInstallation Directoryを変更する。
    ↓の1.15.0はTagLibのバージョンによって多分違うので、確認すること。
    install_name_tool -id @rpath/tag.framework/Versions/1.15.0/tag tag.framework/Versions/1.15.0/tag
  9. XcodeのEmbedded Binariesへ追加する

 

これで使えるようになる。

 
2015/07/14

Swiftでファイルパスを扱っていたときの事です。
以前からMacでプレイリストを作ると、パスが見つからないって言われることがあります。
原因はMacのファイルシステムとのことです。
Macの内部で使われているのがNFDというタイプ。(UTF8-mac)
Mac以外だと概ねNFCが使われています。(UTF-8)
UTF-8というところからわかると思いますが、ASCIIのみであれば問題は発生しません。
日本語などを使った場合におかしくなります。

どういう風になるかというと、NFDだと濁点や半濁点を1文字として扱います。
例としては、NFCだと「ブ」、NFDだと「フ゛」となります。

この問題はファイルの内容では起きなくファイルパス(ファイル名)で問題が起きます。
内部でファイルパスを取得するとNFDで取得されるので、ファイルに書き出すとNFDのまま書き出されます。
そのため、Mac以外からそのパスへアクセスしようとすると見つからなくなります。

そこでSwiftでどのようにするかというと簡単です。
pathにファイルパスが格納されているとします。
 
path = path.precomposedStringWithCanonicalMapping

これだけです。
これで、NFDからNFCへの変換ができます。

逆に、NFCからNFDにする場合は、
 
path = path.decomposedStringWithCanonicalMapping

です。

ファイルパスも自分で組み合わせてパスを作る分にはNFCで問題ないですが、FileManagerを使ってファイルパスを取得して、その取得したパスをそのまま使うとNFDになりますね。

ファイルパスを扱う場合は気をつける必要がありますね。
 
 
2015/06/09

【Apple Music登場】#WWDC2015 様々な発表が飛び出たWWDC 2015の内容はこちらでチェック! : ギズモード・ジャパン

何が出るかな?

アップルの開発者向けイベント「WWDC 2015」は、日本時間で本日6月8日26時から(6月9日の午前2時から)スタート。何が発表されるんでしょうか? イベント前にこちらで予想されるものをおさらいしておきましょう!


ざっと見た感じ、やっぱりという感じ。
細かいところは、Gizmodeさんのページを見るとしてこんな感じ?

MacOS 11


El Capitanという名前 (ヨセミテ公園の中の岩の名前らしいです。)
名前から分かるとおり、たいしたアプデではない。
それららば、無理に変更する必要なかったのでは。
毎年この時期にアプデしないといけないルールに則っただけで特に目新しいものはなし。
面白くない。

- 新フォント
- 新ジェスチャー
- Metroで速度向上。→内部処理変えたことに名前を付けただけでは?

iOS9


特に…目新しいものは無い。
Swift2をここで出すとは、MacOS側のAPIはまたないがしろなのかな。
iOSではできて、MacOSではできないことが多いのがSwift。

- Siriの向上
- ApplePayの拡大
- Mapsに乗り換え案内
- Newsアプリ
- マルチタスクという名のSplitView(iPadのみ)
- Swift2 → オープンソース化
- iPhone4S,iPad2も対象

WatchOS2


Wifi対応でバッテリー大丈夫なのかな。
Facetimeにやっと対応。

- 文字盤に写真
- Facetime対応
- Wifi対応

Apple Music


事前リーク通りでしたが、結局これが目玉だったのでは?
先に発表されちゃって…Appleらしくない。

ストリーミングサービス
3ヶ月無料
10$/月 (基本)
15$/月 (ファミリープラン6人まで)

結局


つまらない…
おぉ!!と思うものが何も無い…
残念すぎる。
こんなのなら発表しなくて良かったのでは。
結局、未熟なまま毎年メジャーアップデートさせるからつまらないんだよな。
初めからあって当たり前の機能が追加されているだけに感じる。

また、ワクワクを味わいたい。
もう、Appleから新しいものは出てこないのでしょうか。

今年はお布施しようかと思ったけど、正直そこまでの魅力がないな。

 
2015/05/28

Swift第3弾として、今回はMacでFiio X3 2ndのテーマをいじっちゃおうというテーマでやってみたいと思います。
 

最初は色変更だけのつもり


最初は、アイコンの色変更を簡単にできないかなと思っていました。
以前に私のように絵心が無いけどテーマに合わせて色変更を行うには、GIMPのグラデーションマップを使うのが簡単ですよ。というのを書きました。
しかし、アイコンの数が多いので、一つ一つグラデーションマップで色変更をしていては時間がかかります。
そこで、GIMPのバッチ機能を使って自動化しちゃおうと思いました。
しかし、色を決めるのも簡単にしたかったので、Swiftで作った画面で色を選択させて、それをGIMPのバッチモードで回せば良いかなと思い、その部分を作りました。
 
2015/05/15

最近またSwiftをやっているのですが、取得した画像サイズがおかしいことがあり、すっかりはまっていました。
縦横サイズが同じpng画像を読み込んで縦横サイズを取得しているのですが、画像によって返ってくる値が異なっていました。
 
let path = "/Users/ug/Desktop/image.png"
let image = NSImage(contentsOfFile: path)
let imageWidth = image.size.width
let imageHeight = image.size.height

23 × 320画像を読み込んでいますが、
別に用意した同じサイズの画像だと、5.51999...×76.79....というサイズで返ってきます。
NSUrlにしてから読み込んでみたり、
NSDateにしてから読み込んでみたり、
NSBitmapImageRepにしてから読み込んだり、
Objective-cを経由して読み込んでみたりしても同じでした。

ここ数日すっかり困っていたのですが、解像度が違う画像を読む場合、sizeを使って取得すると、72dpiに変換されて返ってくるという情報を得て、画像情報を見たら、正常に返ってくる画像は72dpi、正常に返ってこない画像は、300dpiでした。

Google先生の検索が甘かったようです。

画像サイズ取得の場合は、sizeではなく、NSImage→NSBitmapImageRep→pixelsWide/pixelsHeighで取得する
 
let path = "/Users/ug/Desktop/image.png"
let image = NSImage(contentsOfFile: path)
let bmpir = NSBitmapImageRep(data:image!.TIFFRepresentation!)
let imageWidth = image.pixelsWide
let imageHeight = image.pixelsHeigh

これでちゃんと返ってくるようになりました。

当たり前のことなのかもしれませんが、久しぶりにはまったので防備録として残しておきます。
助かりました。

参考)画像サイズの取得: NSImageのサイズがおかしい
 
2015/04/24

Swift第2弾でFiio用の転送&プレイリストソフトを作りましたが、プレイリストにどんどん入れられるけど、並び替えたいよなと思って、プレイリストの編集機能を付けてみました。

今回つけたのは、プレイリスト内の曲の並び替え、曲の削除の機能です。

カスタムセルの設定の仕方に難儀して、フォーカス当たったときの色の変更の仕方に難儀しましたが、無事にできました。

これで、flac突っ込んでプレイリスト作って、並び替えたり聴かなくなった曲をプレイリストから消したりも簡単にできるようになりました。

準備は万端ですが、実機は今夜あたりかな。
実機よりもアプリの方に興味があったりw

Swiftには結構慣れた。けれどまだまだだな。
思った通りにやるには時間がかかる。
 
 
 
1 / 2 /

Copyright © Rocomotion All Rights Reserved.