BLEHUB
Connect with CASIO G-SHOCK GB-6900AA and GB-5600AA(http://g-shock.jp/ble/products/)
Alert the device using FMP .
Alert the device using FMP .
Topic : computer management - Genre : Computer/Internet
SerialCommunication.framework

I just have released SerialCommunication.framework that is iOS version of Android NDK.
You can easily control Arduino using iOS devices. You can build and Run using Xcode as you create normal project.
(This framework use UART,Android ADK uses USB)
Using this framework and method Arduino can power from iOS devices.
More info at Github

XCode 4.X でiOSのstaticフレームワークを作成する。
iOSで顔検出やら、エフェクトなどの、画像処理を行うフレームワーク,ImageProcessing.frameworkを作ったので、そのときのメモ。
あと、JB環境用ですが、iOSとArduino(シリアル通信できる端末ならなんでも)の通信用フレームわワーク、SerialCommunication.frameworkも同様の方法でフレームワーク化しました。
基本的には、Cocoaの日々: [iOS] Static Library (5) Frameworkを作成するを参考にさせていただきました。
非常に、綺麗にまとまっていてわかりやすかったです。
感謝。
ただ、ここで紹介されていた方法がXCode3.X系で、4.X系でのやり方とはちょっとちがったので、その差分だけメモとして残します。
上記サイトの4番までは、だいたい同じです。
3番のヘッダの用意は、お好みで。このあとのシェルスクリプトで自動化もできるので、わたしはここの設定はおこないませんでした。
5番は、3.x系との一番の違いで、4.xSDKでは、ターゲットからシェルスクリプトの追加ができません。
以下のように、Build Phasesから、Add Build Phase->Add Run Scriptとしてやる必要があります。

ここに、コンパイルがおわったときに実行するスクリプトを追加していきます。
中身は上記サイトで紹介してる、デバイスとシミュレーションのライブラリのリンク等になります。
フレームワークへのヘッダのコピー等もここで行います。
私が今回作成したライブラリは、デバイス依存のコード等があり、ユニバーサル化がめんどくさかったので、それはやってません。
参考までに、こんな感じです。
XCode4.xから実行ファイルの置かれるパスのデフォルトのパスが変わっているので、そこも変更しています。
#--------------------------------------------------------------------
echo "[0] Framework: Preparing ..."
#--------------------------------------------------------------------
FRAMEWORK_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleName" Info.plist)
BUILD_TARGET_NAME=$FRAMEWORK_NAME
FRAMEWORK_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Info.plist)
FRAMEWORK_VERSION=A
FRAMEWORK_BUILD_PATH="DerivedData/${BUILD_TARGET_NAME}/Build/Products/${BUILD_STYLE}-framework"
FRAMEWORK_DIR="${FRAMEWORK_BUILD_PATH}/${FRAMEWORK_NAME}.framework"
PACKAGENAME="${FRAMEWORK_NAME}.${FRAMEWORK_VERSION_NUMBER}.zip"
echo "Framework: Cleaning framework..."
[ -d "${FRAMEWORK_BUILD_PATH}" ] && rm -rf "${FRAMEWORK_BUILD_PATH}"
#--------------------------------------------------------------------
echo "[1] Framework: Setting up directories..."
#--------------------------------------------------------------------
mkdir -p ${FRAMEWORK_DIR}
mkdir -p ${FRAMEWORK_DIR}/Versions
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Resources
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Headers
#--------------------------------------------------------------------
echo "[2] Framework: Creating symlinks..."
#--------------------------------------------------------------------
ln -s ${FRAMEWORK_VERSION} ${FRAMEWORK_DIR}/Versions/Current
ln -s Versions/Current/Headers ${FRAMEWORK_DIR}/Headers
ln -s Versions/Current/Resources ${FRAMEWORK_DIR}/Resources
ln -s Versions/Current/${FRAMEWORK_NAME} ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}
#--------------------------------------------------------------------
echo "[3] Framework: Creating library..."
#--------------------------------------------------------------------
lipo -create \
DerivedData/${BUILD_TARGET_NAME}/Build/Products/${BUILD_STYLE}-iphoneos/lib${FRAMEWORK_NAME}.a \
-o "${FRAMEWORK_DIR}/Versions/Current/${FRAMEWORK_NAME}"
#build/${BUILD_STYLE}-iphonesimulator/lib${FRAMEWORK_NAME}.a \
#--------------------------------------------------------------------
echo "[4] Framework: Copying assets into current version..."
#--------------------------------------------------------------------
cp Classes/*.h ${FRAMEWORK_DIR}/Headers/
cp ../../Android/Effects/jni/*.h ${FRAMEWORK_DIR}/Headers/
mkdir ${FRAMEWORK_BUILD_PATH}/sample01_live/
cp -R ../sample01_live/ ${FRAMEWORK_BUILD_PATH}/sample01_live/
cp Info.plist ${FRAMEWORK_DIR}/Resources/
cp otherResources/haarcascades/*.* ${FRAMEWORK_DIR}/Resources/
#--------------------------------------------------------------------
echo "[5] Framework: Packaging framework..."
#--------------------------------------------------------------------
#cd ${FRAMEWORK_BUILD_PATH}
#zip -ry ${PACKAGENAME} $(basename $FRAMEWORK_DIR)
フレームワークとサンプルコードをGitHubへアップロードするにあたり、全部が同じフォルダにあったほうが簡単なので、最後にフレームワークのサンプルコードなども、自動でフレームワークど同じフォルダにコピーするようにしています。
あと、JB環境用ですが、iOSとArduino(シリアル通信できる端末ならなんでも)の通信用フレームわワーク、SerialCommunication.frameworkも同様の方法でフレームワーク化しました。
基本的には、Cocoaの日々: [iOS] Static Library (5) Frameworkを作成するを参考にさせていただきました。
非常に、綺麗にまとまっていてわかりやすかったです。
感謝。
ただ、ここで紹介されていた方法がXCode3.X系で、4.X系でのやり方とはちょっとちがったので、その差分だけメモとして残します。
上記サイトの4番までは、だいたい同じです。
3番のヘッダの用意は、お好みで。このあとのシェルスクリプトで自動化もできるので、わたしはここの設定はおこないませんでした。
5番は、3.x系との一番の違いで、4.xSDKでは、ターゲットからシェルスクリプトの追加ができません。
以下のように、Build Phasesから、Add Build Phase->Add Run Scriptとしてやる必要があります。

ここに、コンパイルがおわったときに実行するスクリプトを追加していきます。
中身は上記サイトで紹介してる、デバイスとシミュレーションのライブラリのリンク等になります。
フレームワークへのヘッダのコピー等もここで行います。
私が今回作成したライブラリは、デバイス依存のコード等があり、ユニバーサル化がめんどくさかったので、それはやってません。
参考までに、こんな感じです。
XCode4.xから実行ファイルの置かれるパスのデフォルトのパスが変わっているので、そこも変更しています。
#--------------------------------------------------------------------
echo "[0] Framework: Preparing ..."
#--------------------------------------------------------------------
FRAMEWORK_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleName" Info.plist)
BUILD_TARGET_NAME=$FRAMEWORK_NAME
FRAMEWORK_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Info.plist)
FRAMEWORK_VERSION=A
FRAMEWORK_BUILD_PATH="DerivedData/${BUILD_TARGET_NAME}/Build/Products/${BUILD_STYLE}-framework"
FRAMEWORK_DIR="${FRAMEWORK_BUILD_PATH}/${FRAMEWORK_NAME}.framework"
PACKAGENAME="${FRAMEWORK_NAME}.${FRAMEWORK_VERSION_NUMBER}.zip"
echo "Framework: Cleaning framework..."
[ -d "${FRAMEWORK_BUILD_PATH}" ] && rm -rf "${FRAMEWORK_BUILD_PATH}"
#--------------------------------------------------------------------
echo "[1] Framework: Setting up directories..."
#--------------------------------------------------------------------
mkdir -p ${FRAMEWORK_DIR}
mkdir -p ${FRAMEWORK_DIR}/Versions
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Resources
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Headers
#--------------------------------------------------------------------
echo "[2] Framework: Creating symlinks..."
#--------------------------------------------------------------------
ln -s ${FRAMEWORK_VERSION} ${FRAMEWORK_DIR}/Versions/Current
ln -s Versions/Current/Headers ${FRAMEWORK_DIR}/Headers
ln -s Versions/Current/Resources ${FRAMEWORK_DIR}/Resources
ln -s Versions/Current/${FRAMEWORK_NAME} ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}
#--------------------------------------------------------------------
echo "[3] Framework: Creating library..."
#--------------------------------------------------------------------
lipo -create \
DerivedData/${BUILD_TARGET_NAME}/Build/Products/${BUILD_STYLE}-iphoneos/lib${FRAMEWORK_NAME}.a \
-o "${FRAMEWORK_DIR}/Versions/Current/${FRAMEWORK_NAME}"
#build/${BUILD_STYLE}-iphonesimulator/lib${FRAMEWORK_NAME}.a \
#--------------------------------------------------------------------
echo "[4] Framework: Copying assets into current version..."
#--------------------------------------------------------------------
cp Classes/*.h ${FRAMEWORK_DIR}/Headers/
cp ../../Android/Effects/jni/*.h ${FRAMEWORK_DIR}/Headers/
mkdir ${FRAMEWORK_BUILD_PATH}/sample01_live/
cp -R ../sample01_live/ ${FRAMEWORK_BUILD_PATH}/sample01_live/
cp Info.plist ${FRAMEWORK_DIR}/Resources/
cp otherResources/haarcascades/*.* ${FRAMEWORK_DIR}/Resources/
#--------------------------------------------------------------------
echo "[5] Framework: Packaging framework..."
#--------------------------------------------------------------------
#cd ${FRAMEWORK_BUILD_PATH}
#zip -ry ${PACKAGENAME} $(basename $FRAMEWORK_DIR)
フレームワークとサンプルコードをGitHubへアップロードするにあたり、全部が同じフォルダにあったほうが簡単なので、最後にフレームワークのサンプルコードなども、自動でフレームワークど同じフォルダにコピーするようにしています。
ImageProcessor

無料で公開しているImageProcessing.frameworkをつかって、ImageProcessorというアプリをリリースしました。
いままで、つくってきて自分的にはコンセプトは面白いけど、OSのアップデート等に対応出来てなかったっていうアプリをひとつにまとめたっていう側面もあります。
なので、
以前作った、
※顔認識して自動撮影するPartyShoot
※ARっぽく空中で演奏するピアノやドラムアプリ、AR-PIANO,AR-DRUM
等の機能も入っています。
それ以外にも、リアルタイムで効果を確認しながら撮影できるカメラ機能など、カメラに関する機能をひとまとめにしました。





Topic : Software Development - Genre : Computer/Internet
ImageProcessing.framework

Github
ImageProcessing.frameworkという、iOS用の画像処理ライブラリーを開発しました。
iPhone4で8fpsという高速な顔認識と様々なエフェクトが簡単に使えます。
サンプルをダウンロードして試してみてください。
※現在は、iPhone 3GS,iPod touch 2nd 以上のデバイスのみ対応してます。
BSDライセンスですので、ご自分のプロジェクトに組み込んでご自由にお使いください。
Android用も近々リリースする予定です。
| HOME | Next page »