タグ

ブックマーク / dev.classmethod.jp (17)

  • [Android]ライブラリーとGradleのバージョンを指定する技術 | DevelopersIO

    はじめに このシリーズを初めての方はこちらです。 「最近Androidを始めた同僚のソースをモダン化計画 」シリーズ開始 | Developers.IO リリースを目指して作っているので、公開してまずいところは、一部改変しています。 前回復習 [Android]ライブラリーとGradleが古いバージョンを使っていると気づく技術 | Developers.IO 古いバージョンを使っていると気づいたら、次は新しいバージョンに設定します。設定するだけと思いがちなんですが、ここよく考えたほうが良いです。長いプロジェクトや個人や趣味で放置しがちのプロジェクトほど、1周回って悩みどころなんです! バージョン指定の方法 まずはどんな指定の仕方があるか洗い出します。無駄に選択肢がたくさんあります。皆さんはどれを使っていますか? 直接バージョンを指定する 愚直にバージョンを直接書きます。 implement

    [Android]ライブラリーとGradleのバージョンを指定する技術 | DevelopersIO
    souvenir038
    souvenir038 2018/07/26
    +指定の場合は、ライブラリのバージョンを気にしないので、突然動かなくなったときの対処が難しい。どのバージョンで動いてたっけ?という不毛な調査することに。変数指定だといい感じに最新版に書き変えてくれない
  • [Android]ライブラリーとGradleが古いバージョンを使っていると気づく技術 | DevelopersIO

    はじめに このシリーズを初めての方はこちらです。 「最近Androidを始めた同僚のソースをモダン化計画 」シリーズ開始 | Developers.IO リリースを目指して作っているので、公開してまずいところは、一部改変しています。 どこから手を付ける? サンプルは、簡単なフォームが表示され、入力して、登録ボタンを押して処理される。やりたい事がなんとなくわかる程度ものでした。 処理はすべてActivityに記述ありました。 ぶっちゃけ趣味のアプリですし、このままでもやりたいことは実現できました。そこで、まずはどうしたいヒヤリングしました。 Droid Kaigiみたいなイケイケな設計がしたい。 Androidのプロダクトでどんな設計になっているか知りたい。 どういうソースコードになってるか知りたい。 Kotlinもいっぱい触りたい。 つまり、ガンガンいこうぜ!ってことね! やることはたくさ

    [Android]ライブラリーとGradleが古いバージョンを使っていると気づく技術 | DevelopersIO
    souvenir038
    souvenir038 2018/07/26
    Android StudioでGradleを開くと、非推奨や古いバージョンのライブラリを使っていると警告色が付く。
  • [iOS] TestFlight 全工程解説 2016年春 【配信編】 | DevelopersIO

    はじめに こんにちは!タミー・トッキーこと田宮です! 今回から2回に渡って、TestFlightの内部テスト、外部テストの実施方法について、順を追って見ていきたいと思います。 1回目の今回は、テスト配信側で必要な操作を見ていきます。 Apple版TestFlightについては、サービス開始時から仕様が細かく変更されてきていますので、昔つかったことがある方も、一度ご覧頂ければと思います。 スクリーンショットをもれなく用意するため、複数のアプリの画面を使っています。ご了承下さい。 なお、公式ドキュメントは以下になります。 TestFlight Beta Testing (Optional) 目次 1. TestFlightの解説 内部テストとは 外部テストとは 2. ビルドを用意する ビルドをアップロード アップロードされたビルドを確認 3. 内部テスト iTunes Connectユーザを確

    [iOS] TestFlight 全工程解説 2016年春 【配信編】 | DevelopersIO
    souvenir038
    souvenir038 2018/05/30
    Bundle versions string, shortは、ストア上の最新バージョンよりも大きいこと(すでにアップロード済みのベータ版のもの以下でも可)。Bundle versionは、これまでにアップロードしたいずれのビルドの Bundle versionより大きいこと。
  • [iOS] ディープリンク(Custom URL Scheme)でアプリを起動する | DevelopersIO

    1 はじめに ディープリンクとは、アプリの特定の画面に遷移(遷移先のアプリ側で実装が必要です)させることのできるリンクのことです。 iOSでは、 cm-app:// のような、アプリ固有の Custom URL Scheme を実装することで、これを実現できます。 ディープリンクを使用すると、スキーム(上記の例ではcm-app)でアプリを識別して起動できます。また、//以降のURL部分でアプリに対して情報を受け渡すことや、Webページからだけでなくアプリ間の遷移にも応用できます。 なお、ディープリンクは、あくまでアプリがインストールされている場合にのみ利用可能な機能であり、Universal Links(iOS9以降で利用可能)などとは、違いますのでご注意下さい。 参考:URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現

    [iOS] ディープリンク(Custom URL Scheme)でアプリを起動する | DevelopersIO
    souvenir038
    souvenir038 2018/05/01
    URLスキーム
  • [Xcode][小ネタ] DerivedDataの削除についての備忘録 | DevelopersIO

    はじめに モバイルアプリサービス部の中安です。 日は自分のための備忘録ネタです。 iOSアプリの開発をしていると、たまにXcodeがおかしくなり、どうにもこうにもよく分からないエラーを吐き出し始めた時、 試しに DerivedData を削除してみるということをよくします。 DerivedData は、プロジェクトごとに生成されるキャッシュデータといいますか、インデックスやログや生成物の等の溜め場といいますか、中間データの類です。 ときにこれが悪さをして不穏な動きをさせてしまっていることもあるようです。 実際、開発時はこれを削除してXcodeを再起動すると、Xcodeの不安定動作やエラーが消えるということもよくあります。 その1. Clean Build Folder Xcodeにはビルドフォルダのクリーン機能があります。 しかし、いつも自分は方法を忘れてググってしまいます。 当に簡単

    [Xcode][小ネタ] DerivedDataの削除についての備忘録 | DevelopersIO
    souvenir038
    souvenir038 2018/04/29
    たまにXcodeがおかしくなり、どうにもこうにもよく分からないエラーを吐き出し始めた時、 試しに DerivedData を削除してみる
  • 新しい予約語がやってくる 「Swift5のOwnershipに備える」 #tryswiftconf | DevelopersIO

    はじめに モバイルアプリサービス部の中安です。 セッションのレポートを書かせていただきます。 講演概要 公式ページからの引用 Swift5のOwnershipに備える by Toru Kuriyama Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。 内容 4になったのも束の間、Swiftの流れは早いものでSwift5のことも考えなくてはなりません。とはいえ、まだ先の話ですがその日はすぐにやってきそう。 今回すべてのセッションを隈なく見た

    新しい予約語がやってくる 「Swift5のOwnershipに備える」 #tryswiftconf | DevelopersIO
  • [2018年版] よく分かる!iOSアプリのリリース手順のまとめ | DevelopersIO

    はじめに こんにちは。モバイルアプリサービス部の平屋です。 記事では、iOSアプリをApp Storeへリリースする手順を解説していきます。 標準的なリリースフローに沿って「各工程で必要な作業」をまとめてありますので、リリース作業時の参考にしていただければと思います。 検証環境 macOS High Sierra 10.13.2 Xcode Version 9.2 (9C40b) 目次 リリース作業の概要 リリースフローについて アプリのステータスについて 1. アカウントや証明書を準備する 1.1 Apple IDを準備する 1.2 プロビジョニングプロファイルを準備する 2. アプリの基情報を登録する 3. アプリの詳細情報を編集する 3.1 App情報 3.2 価格および配信状況 3.3 {バージョン番号} 提出準備中 4. アプリをアップロードする 5. アップロードされたアプ

    [2018年版] よく分かる!iOSアプリのリリース手順のまとめ | DevelopersIO
  • LIREで画像の類似検索をしてみる | DevelopersIO

    LIREという画像検索のためのライブラリを試してみました。 記事では以下の内容について記載しています。 LIREとは サンプルを動かしてみる インデックス作成と検索のコードを書いてみる LIREとは LIRE (Lucene Image Retrieval) is an open source library for content based image retrieval, which means you can search for images that look similar. LIREは、似ている画像を検索するためのOSSのライブラリです。Javaです。 画像の特徴に対するLuceneのインデックスを作成し、作成したインデックスに対して画像での検索が行えます。 ドキュメントはこちらからご確認ください。 サンプルを動かしてみる README.mdいわくアプリケーションに組み込

    LIREで画像の類似検索をしてみる | DevelopersIO
    souvenir038
    souvenir038 2018/02/14
    似ている画像を検索するためのJavaのライブラリ。画像の特徴に対するLuceneのインデックスを作成したり、インデックスに対して検索したりできる。
  • [日本語Alexa] AMAZON.RepeatIntentを実装して「もう一回」「もう一度言って」に対応する〜より自然に会話できるスキル作成のために〜 | DevelopersIO

    1 はじめに 前回、前々回、「〜より自然に会話できるスキル作成のために〜」と題して、スキルで自然に対話させる要領について紹介してきました。 今回は、ユーザーがAlexaからのレスポンスを聴き逃してしまったり、聞き取れな無かった時に、「もう一回」とか「もう一度」って言って、聞き直せるようにする実装について紹介します。 Alexa: 答えは、次のうちどれですか? Alexa: 1番 XX◯◯X Alexa: 2番 △XX◯◯ Alexa: 3番 X◯◯◆◆ ユーザー:(うーんと・・・あれ1番は何だっけ・・・?) ユーザー:ごめん!もう一回! なお、これは、組み込みインテントである、AMAZON.RepeatIntentに対応させると言うだけの話で、特に、テクニックとか大袈裟なものではな無いことを予めご了承下さい。 2 AMAZON.RepeatIntent 標準インテントは、停止、キャンセル

    [日本語Alexa] AMAZON.RepeatIntentを実装して「もう一回」「もう一度言って」に対応する〜より自然に会話できるスキル作成のために〜 | DevelopersIO
  • AsyncTaskを使った非同期処理のきほん | DevelopersIO

    非同期処理を行う方法にAsyncTaskを使う方法があります。 AsyncTaskを使うとThreadやRunnableを意識することなく、 メインスレッドとは別のスレッドで処理を行うことができます。 非同期処理中であってもメインスレッドでの処理が可能です。 非同期処理を行う際、Handlerクラスを使って画面更新処理を行うと 少しコードが煩雑になってしまいますが、 AsyncTaskクラスを使うとそのような事がなく、 非同期処理と画面更新処理を行うことができます。 ■AsyncTaskに用意されている主なメソッド onPreExecute() doInBackgroundメソッドの実行前にメインスレッドで実行されます。 非同期処理前に何か処理を行いたい時などに使うことができます。 doInBackground() メインスレッドとは別のスレッドで実行されます。 非同期で処理したい内容を記

    AsyncTaskを使った非同期処理のきほん | DevelopersIO
    souvenir038
    souvenir038 2018/01/24
    Android非同期処理。事前準備や処理後のメソッドも用意されている。非同期処理中であっても進捗状況などをUIスレッドで表示できるメソッドもあり。Handlerよりもコードが煩雑にならない。
  • Alexaの知識がないところからスキルを作ってみた | DevelopersIO

    はじめに モバイルアプリサービス部の中安です。 自分の手元に echo dot が届いてからというもの、すっかりラジオプレーヤーになり果てております(苦笑) でも、せっかくなので「カスタムスキルとやらを作ってみようじゃないか」と、見切り発車でほぼ無知識の中ほそぼそと作りはじめることにしました。そして、初心忘るべからずという意味も込めて、作っていく中で感じた感想やハマりどころなどを開発日記としてブログに書くことにしました。 そんなノリの開発日記なので、高度なAlexa技術記事を求めてここに来られた方はすいません、ここまでです。(;´∀`) もし今、自分と同じように「スキル作ってみようかなー」と思っていて、「でも、よくわからないなぁ」「何から始めたらいいのかなぁ」と思っている方にとっての参考になればと思います。 あかうんと スキル開発を始めるにあたって、意外と躓きやすいのがアカウントらしいで

    Alexaの知識がないところからスキルを作ってみた | DevelopersIO
  • 開発者が運用を経験すべき一つの理由 | DevelopersIO

    はじめに 小室です。2017年も最後の日になりました。 ここ最近は読書によるインプットが少なくなったことによって、文章の質が自ら目を背けたくなる程度に低下していたため、仕事納めから数日はひたすらを読む生活をしていました。まだまだインプットが足りていないので充電が完了していないのですが、年末恒例になったエントリーを書かないことが自分の中でモヤモヤとして残っていたので、重い腰を上げて文章を書いてみようと思います。 ここ数年は珍しく1つのプロジェクトにつきっきりで設計/実装から運用までを通して担当しています。 *1特に運用を担当するようになって多くを学んだ一年でした。もはや設計・実装者が一人も残っていないアプリケーションのメンテナンス、改修に関わったり、インフラ側とアプリケーション側の狭間を埋めるように動くためにAWSのサービスについて格的に勉強をしたりするなど、1アプリケーションエンジニア

    開発者が運用を経験すべき一つの理由 | DevelopersIO
    souvenir038
    souvenir038 2018/01/09
    5W1Hが読み取れるかを意識してDEBUGレベルでログを実装する
  • [iOS 11] 画面の録画を検知する | DevelopersIO

    はじめに こんにちは。モバイルアプリサービス部の平屋です。 iOS 11には画面収録という機能が追加されており、iPhone単体で画面の録画ができます。 [iOS 11][小ネタ] iPhone だけで画面の録画ができるようになりました 記事では画面の録画をアプリから検知する方法を紹介します。 検証環境 Mac macOS High Sierra 10.13 Xcode Version 9.2 (9C40b) iPhone X iOS 11.2 (15B202) 実装 録画中かどうかを判別する iOS 11でUIScreenに追加されたisCapturedプロパティを使用すれば、録画中かどうかを判別できます。 self.label.text = UIScreen.main.isCaptured ? "キャプチャされています!" : "キャプチャされていません!" 録画の開始/停止を検知す

    [iOS 11] 画面の録画を検知する | DevelopersIO
  • 圧倒的捗り!!JSONデータからモデルを自動生成してくれるquicktypeが便利すぎるので紹介してみる | DevelopersIO

    quicktypeとは JSONデータから様々なプログラミング言語のモデルを自動生成してくれるサービスです。 リポジトリはこちら。 記事執筆時点で対応している言語は以下です。 C# Go C++ Java TypeScript Simple Types Swift Elm Schema Web上で自動生成できるよ quicktypeはコマンドラインからモデルを自動生成することもできますが、Webも用意されているのでとても簡単に使えます。 ページを開いて、左側でTop-level typeを指定し、JSONデータを貼り付ければ選択されている言語のモデルに変換されます。 以下はSwift 4で自動生成してみた例です。 こちらが自動生成されたコード。Swift 4なのでCodableプロトコルに対応してますね!素敵すぎる!! デコード・エンコードの処理やCodingKeysも生成してくれるので

    圧倒的捗り!!JSONデータからモデルを自動生成してくれるquicktypeが便利すぎるので紹介してみる | DevelopersIO
  • [OSS] FacebookやYouTubeのようなローディング表示ができるライブラリ「SkeletonView」を試してみた | DevelopersIO

    FacebookやYouTubeアプリのローディング表示 FacebookやYouTubeアプリではコンテンツのローティング表示をUIActivityIndicatorViewを使わずに実装しています。 こちらはFacebookアプリ。 こちらはYouTubeアプリ。 UIActivityIndicatorViewと使った方法と比べ以下の利点があると思います。 ユーザーがあらかじめどこにどのくらいの量の情報が表示されるかわかる ユーザーがアプリが現在何を読み込んでいるのかがわかる 個人的には見せ方によりますが、UIActivityIndicatorViewはちょっと 操作をブロックされている感が強いと思うことがあるのでFacebookやYouTubeアプリのような表示は良いなぁと思っていたところ、SkeletonViewというライブラリを見つけたのでご紹介したいと思います。 Skeleto

    [OSS] FacebookやYouTubeのようなローディング表示ができるライブラリ「SkeletonView」を試してみた | DevelopersIO
    souvenir038
    souvenir038 2017/11/15
    スケルトン表示を実現するSwiftライブラリ。UIActivityIndicatorViewと使った方法と比べ、 あらかじめどこにどのくらいの量の情報が表示されるかわかる、アプリが現在何を読み込んでいるのかがわかる、という利点。
  • [iOS][Apple 公式] iOS バージョンのシェア率を確認する | DevelopersIO

    公式情報 ある時点での 使用されている iOS バージョンの割合 は Apple Developer のサポートページ で確認することができます。 ブログ執筆時のデータは以下の通りです。 iOS 10 : 89% iOS 9 : 9% それ以前 : 2% ※ 2017/9/6 時点の結果 最新の iOS で 89%, 直近の 2 バージョンで 98% をカバーできていますね。 この情報は不定期で更新されます。 iOS 11 がリリースされたのは 2017/9/20 なので、今現在の割合はまた違ったものになっていることでしょう。 リアルタイムの情報ではありませんが、Apple の公式情報なので信頼性は高いと思います。 アプリを作成するときやアップデートをかける場合など、どの iOS バージョンまでサポートするかを検討する際に参考にしてみてください。 リンク App Store - サポート

    [iOS][Apple 公式] iOS バージョンのシェア率を確認する | DevelopersIO
  • [iOS 11][Xcode 9][新機能] UITableViewのSelf-Sizingがデフォルトになりました | DevelopersIO

    UITableViewのSelf-Sizingがデフォルトになった Xcode 9(iOS 11 SDK)でUITableViewのSelf-Sizing(Auto Layoutによる高さの自動調整)がデフォルトになりました。 これまではセルの高さをSelf-Sizingにしたい場合は以下のようなコードを書く必要がありました。 参考:自律的に寸法を調整するテーブルビューのセルの活用 tableView.estimatedRowHeight = 85.0 tableView.rowHeight = UITableViewAutomaticDimension Xcode 9ではSelf-Sizingがデフォルトになったので上記のコードを書く必要がなくなりました。 検証環境 記事は以下の環境で検証を行っています。 macOS Sierra バージョン 10.12.6 Xcode Version

    [iOS 11][Xcode 9][新機能] UITableViewのSelf-Sizingがデフォルトになりました | DevelopersIO
  • 1