2016-01-01から1年間の記事一覧
2016も残りわずかとなったところで急いで今年を振り返ります! 仕事 1月にLIMIAのiPhoneアプリをリリースしました。 フルSwiftで開発しました。 LIMIA (リミア) - DIYやインテリアなどの住まい・暮らしの情報アプリ -Limia, Inc.カタログ無料 2月にはAppStor…
Swiftにはweak reference arrayがないので、NSHashTableを利用します protocol SampleDelegate : class { func sampleDelegateDidFinish() } class SampleClass { let delegates = NSHashTable<AnyObject>() // AnyObjectをSampleDelegateにするとSwift3時点ではコンパ</anyobject>…
Xcode8.2でコマンドラインでシミュレータの動画が撮れるようになって便利に スクリーンショット xcrun simctl io booted screenshot. To take a video, run the command 動画 xcrun simctl io booted recordVideo <filename>.<file extension> 実行すると Recording... (Press CTL+C to</file></filename>…
現象が伝えにくいので、図に表すと以下のような感じで、 TabbarController内にNavigationControllerをもたせた状態で、いくつかViewControllerをPushViewControllerします。 そして、2つ以上PushViewControllerした状態で一番上のViewControllerのナビバーを…
Xcode8(Swift3.0.0)だと↓のテストは通るんですが、 import XCTest @testable import TypeTest class TypeTests: XCTestCase { func testType_WhenIntToAnyObject() { let intValue = ["hoge": Int(1) as AnyObject] XCTAssertTrue(intValue["hoge"] is Int) …
古 新 CGRectGetWidth( rect ) rect.width CGRectGetHeight( rect ) rect.height CGRectGetMinX( rect ) rect.minX CGRectGetMidX( rect ) rect.midX CGRectGetMaxX( rect ) rect.maxX CGRectGetMinY( rect ) rect.minY CGRectGetMidY( rect ) rect.midY CGR…
Project SettingsのCapabilitiesのタブを開き、PushNotificationsをONにします production.entitlements <plist version="1.0"> <dict> <key>aps-environment</key> <string>productio…</string></dict></plist>
Xcode8でxcodebuildを使ってコマンドラインでarchiveしようとすると以下のようなエラーがでて失敗するようになりました。 Check dependencies XXX has conflicting provisioning settings.XXX is automatically signed, but provisioning profile XXX_Adhoc …
Xcode8でxcodebuildでtestを走らせると以下のようなエラーがでてテストが実行できなくなりました xcodebuild: error: Failed to build workspace XXX with scheme XXX. Reason: Could not determine bundle identifier for XXXTests's TEST_HOST: どうもTEST…
動画のフォトアルバムへの保存 iOS8まで import AssetsLibrary ... ALAssetsLibrary().writeVideoAtPathToSavedPhotosAlbum(filePathURL) { _ in // 完了後の処理 } iOS9以降 import Photos ... PHPhotoLibrary.sharedPhotoLibrary().performChanges( { PHAs…
Androidの既存のプロジェクトをビルドしようとしてAndroid Studioのインストールからはじめると 毎回同じようなところで躓いている気がするのでメモ エラーで Unsupported major.minor version 52.0 が出た時 原因 これはAndroidStudioが使っているJDKが古い…
Xcode8でビルドするとデフォルトではSwift3でコンパイルされてしまいます。 とりあえずXcode8にあげるけどSwift2.3のままにしておいて、Swift3対応は後でという場合の対処方法です。 Build Settings Build Settingsの"Use Legacy Swift Language Version"を"…
Ansibleで使うUbuntuを16.04にしてみたところいくつかエラーが発生した config.vm.box = "ubuntu/xenial64" エラーその1 vagrant upしてTASK [setup]で止まる TASK [setup] ******************************************************************* fatal: [d…
セルのセパレーター消すやつ override func awakeFromNib() { separatorInset = UIEdgeInsets(top: 0, left: bounds.width, bottom: 0, right: 0) }
RxTableViewSectionedReloadDataSourceでは複数Sectionに対応できましたが、 Section単位でreloadData()がされてしまっていました。 今回はRxTableViewSectionedAnimatedDataSourceを使ってみます RxTableViewSectionedAnimatedDataSource ViewControllerはR…
rx_itemsWithCellIdentifierではSection1つしかダメでした。 複数Sectionを使う方法としていくつかあるっぽいのですが、 まずRXTableViewSectionedReloadDataSourceを使ってみます。 RXTableViewSectionedReloadDataSource これはRxSwiftには含まれておらず…
RxSwiftでTableViewとdatasourceをbindingさせる方法はいくつかあるようなので1つずつ見ていきます。 今回はrx_itemsWithCellIdentifilerを使ってみます。 rx_itemsWithCellIdentifier 単にSectionが1つのリストをTableViewに表示するだけであればrx_itemsWi…
Swiftでコーディング規約に沿っているかチェックするツールにSwiftLintというのがあるのでつかってみました。 SwiftLintではコーディング規約としてGithubのSwift style guildeを使っています。 使い方 $ brew install swiftlint XcodeでSwiftLintをかけるプ…
ユーザー名とパスワードを規定の文字数以上入力するとログインボタンが有効になるViewControllerをRxSwiftを使って実装してみました。 SwiftBondしか使ったことなく初めてRxSwiftを使ってみた感想としては、RxSwiftのほうが似たようなものがたくさんあり学習…
やること iOSからSlackのWebSocketを使ってメッセージのやり取りをできる状態にする 事前準備 redirect urlを用意せずにモバイルアプリ単体でアクセストークンを取得するのは無理っぽいのでとりあえずテスト用のを使う テスト用のアクセストークンの取得 htt…
cocoapods 1.0.1 The dependency xxx is not used in any concrete target. Podfileの書き方がcocoapods 1.0系になって変わったらしく Podfileを $ pod init で生成すると # Uncomment this line to define a global platform for your project # platform :…
普通はFabricで手順通りにやってればクラッシュレポートは送信されるはずなんですが、なぜか送信されないってことがありました。 answersとかは動いているのでFabric自体はちゃんと取り込まれてるのになぜだ・・と思って調べたら troubleshootingに書いてあ…