しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

2017-10-01から1ヶ月間の記事一覧

HEARTフレームワークでアプリの指標を考える

Googleが使っているHEARTフレームワークというものを使ってアプリの指標を考えてみました。 指標を考えたのは、運営中の体重管理アプリです。 体重管理ダイエットのFittを App Store で HEARTフレームワークは下記事を参考にしました。 growthhackjournal.co…

Photoshopで写真の色相を調整する

色相調整を試してみました。 バージョンはCS3、画像はぱくたそ様のものを使っています。 www.pakutaso.com 色相を変えるのは「イメージ → 色調補正 → 色相・彩度」から行います。 ポップアップの色相を移動すれば色を変更する事ができます。 特定の色だけ変…

Photoshopで写真を切り抜き

Photoshopを使った写真の切り抜きを試してみました。 PhotoshopはCS3、写真はぱくたそ様のものを使っています。 www.pakutaso.com 今回はこの写真のひまわり部分を切り抜いてみます。 まずはペンツールを選択します。 ペンツールで、切り抜きたい箇所を囲み…

Sketchでヒヨコを描いてみる

Sketchを使ってヒヨコを描いてみました。 バージョンはv43.2を使っています。 まずは黄色い楕円を描きます。 RGBは#FFF572です。 色相を色々調整したところ、ややオレンジよりの方がヒヨコっぽくなった気がします。 続けて三角形(Triangle)を追加して、角度…

Sketchでの画像切り抜きと画像加工

Sketchを使って画像加工をしてみました。 Sketchはv43.2、元画像はぱくたそ様の物を利用しています。 www.pakutaso.com 画像の切り抜き まずは画像をダブルクリックします。 ダブルクリックすると、第3カラムに「Selection」というメニューが表示されます。 …

Sketchでハートを描いてみる

こちらのイラストレータ記事を参考にハートを描いてみました。 Sketchはv43.2を使っています。 magnets.jp 文字からハートを作る まずはテキストでハートをセットします。 それを右クリックして「Convert to Outlines」を選びます。 以上でアウトライン化は…

【Swift4】SpringIndicatorでおしゃれローディング

iOS

ローディング表示をオシャレにしたくて、SpringIndicatorというライブラリを試してみました。 github.com インストール いつものようにCocoaPodsでインストールします。 target 'MyApp' do use_frameworks! pod "SpringIndicator" end 実装 実装はとても簡単…

Reachability.swiftで通信状況を確認する

iOS

Reachability.swiftというライブラリで現在の通信状況を調べてみました。 Reachability.swiftのインストール インストールはCocoaPodsで行いました。 target 'MyApp' do use_frameworks! pod 'ReachabilitySwift' end 通信状況を確認する Wifi/キャリア通信/…

Admobのネイティブアドバンス広告を試してみる

iOS

Admobのネイティブアドバンス広告というフォーマットを試してみました。 これは他社でよくあるネイティブ同様、渡された文字列や画像で広告画面を作っていくもののようです。 ネイティブアドバンス広の広告ユニット作成 まずはAdmobの画面から広告ユニットを…

iPhoneアプリリリース時の「輸出コンプライアンス」のチェックを省く方法

iOS

iTunesConnectから審査に提出する際、「輸出コンプライアンス」と「広告ID」についてチェックをする必要があります。 毎回入力するのが手間だったので、省略する方法はないか調べてみました。 調べたところ、「輸出コンプライアンス」はInfo.plistにITSAppUs…

objc_getAssociatedObjectで既存オブジェクトにプロパティーを追加

iOS

objc_getAssociatedObjectを使ってUIViewに新しいプロパティーを生やしてみました。 UIViewにプロパティーを追加する UIViewにvalueというプロパティーを生やします。 実装は簡単で、下のようなextensionを追加すれば完了です。 private var valueKey = 0 ex…

UICollectionViewの並び替え

iOS

UICollectionViewでの並び替えを試してみました。 Storyboardを使わないでUICollectionViewを表示 まずは普通にUICollectionViewを表示してみます。 コードは下の通りです。 class CollectionViewController: UICollectionViewController { override func vi…

【Xcode】Debug Memory Graphでメモリリークをチェック

iOS

Xcode8から登場したDebug Memory Graphという機能を試してみました。 これはインスタンス間の参照を図として表示できるもので、循環参照の発見などに役立ちます。 Debug Memory Graphは、アプリ起動後にデバッグエリア右端のアイコンをタップする事で実行で…

【Swift】mp3をバックグラウンド再生する

iOS

バックグラウンド再生を試してみました。 mp3をフォアグラウンドで再生 まずはフォアグラウンドでmp3を再生してみます。 再生したいmp3ファイルをAssets.xcassetsに追加して下さい。 そのあと下のようにmp3再生処理を記述すれば完了です。 import UIKit impo…

【iOS】1つの画像データで2xと3xにも対応する

iOS

毎回2xと3xのデータを作るのが大変だったので、1つの画像データ(PDF形式)で全部に対応する方法を調査しました。 今回は下のような画像で検証しました。 利用したツールはSketchです。 まずはこのデータをpdfとして書き出します。 次にAssets.xcassetsでImage…

paper-onboardingでおしゃれウォークスルー

iOS

paper-onboardingというライブラリを使っておしゃれなウォークスルーを実現してみました。 github.com paper-onboardingのインストール target 'MyApp' do use_frameworks! pod 'paper-onboarding' end 2017/10/16現在はSwift4に対応していないので、Swift3.…

RubyでGoogleAnalyticsのデータを取得する

GoogleAnalyticsのデータの取り方を調べてみました。 取得準備 まずはGoogleCloudPlatformにアクセスしてプロジェクトを作成します。 Google Cloud Platform 続けて「IAM と管理」の「サービス アカウント」からサービスアカウントを作成します。 この時、js…

iOSのサイレントプッシュを試してみる

iOS

iOSのサイレントプッシュというものを試してみました。 サイレントプッシュとは その名の通り、ユーザーに通知メッセージが出ないプッシュ通知の事です。 送信時にバックグラウンドで処理を走らせる事ができるので、バックグラウンドでのデータの更新などに…

\[weak self]が必要な時を調べてみる

iOS

循環参照対策で使う[weak self]ですが、常に付ける必要があるのか、それとも付けなくて良い時があるのかを調べてみました。 UIAlertControllerを使った検証 最初に、下のようなUIAlertControllerで[weak self]が必要なのかを調べてみました。 let alert = UI…

【iOS】FIrebaseでpush通知

iOS

Firebaseを使ったpush通知を試してみました。 APNs証明書の準備 まずはプッシュ通知用の証明書を作成します。 キーチェーンを開き、「認証局に証明書を要求」を選択します。 次の画面で、メールアドレスと名前を入力して証明書要求を作成します。 Certificat…

【Swift】isとisMemberOfClassとisKindOfClass

iOS

isとisMemberOfClassとisKindOfClassですが、挙動の差がわかりにくかったのでまとめてみました。 isKindOfClass 下のようなケースでは当然trueになります。 それとisKindOfClass/isMemberOfClassはNSObjectProtocolのメソッドなので、NSObjectなどを継承して…

【Swift】複数のプロトコルに準拠した変数の定義

iOS

下で定義された2つのプロトコルに準拠する型の書き方です。 protocol MyProtocol1 {} protocol MyProtocol2 {} 複数のプロトコルへの準拠を表したい時は、下のように&を使います。 protocol MyProtocol1 {} protocol MyProtocol2 {} class MyClass: MyProtoc…

Amper Musicで簡単BGM作成

Amper Musicというサービスを試してみました。 これは音楽を生成してくれるサービスで、30秒ほどの曲を簡単に作る事ができます。 www.ampermusic.com ライセンスは、非商用なら無制限に利用可能。 商用利用したい時は問い合わせが必要です。 Legal | Amper M…

Universal Linksを試してみる

iOS

iOSから登場したUniversal Linksを試してみました。 Universal Linksとは Universal Linksとは特定のURLにアクセスした時にアプリを遷移させる事ができる技術です。 例えば「https://example.com/にアクセスした時にアプリAに遷移する」と言った挙動が可能で…

ARKitでタップした場所に立方体を配置する

iOS

iOS11で登場したARKitを使って、画面上に立方体を配置してみました。 下のように地面に複数のオブジェクトが並ぶようにしています。 まずはプロジェクト作成から「Augmented Reality App」を選んでARKitのテンプレートを作成します。 次はサンプルコードを消…

Codable+AlamofireでAPIのレスポンスをオブジェクトに変換、Swift4.1対応版

iOS

AlamofireとCodableを使った実装を試してみました。 Alamofireは事前にCocoaPodsでインストールしておきます。 Alamofire+Codableの事前準備 target 'MyApp' do use_frameworks! pod 'Alamofire' end もし非SSL(http)通信をする場合はApp Transport Security…

SSReadingListでリーディングリストに項目追加

iOS

SafariServicesのSSReadingListという機能を使ってiPhoneのリーディングリストに項目を追加してみました。 リーディングリストとは Safariについている機能で、サイトを保存してあとで見る事ができます。 ブックマークと近いのですが「オフラインでも見れる…

BitBarでMacメニューバーに好きな文字列を表示する

BitBarというアプリを使ってMacのメニューバーに文字を表示してみました。 まずは公式サイトからBitBarをインストールします。 getbitbar.com 起動するとプラグインのフォルダーを求められるので、好きな場所を指定します。 次にプラグインフォルダの中にス…

【Swift】SimpleTabでおしゃれなUITabBarControllerを実現する

iOS

SimpleTabというUITabBarControllerがオシャレになったようなライブラリを試してみました。 github.com CocoaPodsでインストールします。 target 'MyApp' do use_frameworks! pod 'SimpleTab' end 2017/10/3時点ではSwift4に対応していないので、Swift3で動…

アプリのAHA体験を考える

先日読んだ本で、ユーザーの継続率を上げる為にはAHA体験が重要という事を学んだので、自分のアプリのAHA体験は何かを考えてみました。 いちばんやさしいグロースハックの教本 人気講師が教える急成長マーケティング戦略 「いちばんやさしい教本」シリーズ作…