こんにちは、クライアントエンジニアの@kobakeiです。元々KyashのAndroidアプリを立ち上げから担当しており、昨年末よりiOSアプリを開発しています。 Kyashは3/5 (月)に初のメジャーバージョンアップとなる2.0.0をリリースし、大幅にデザインをリニューアルしました。実はiOSチームはそれよりも前、昨年末から大幅なアーキテクチャの見直しとリファクタリングを並行して行っていました。今日は皆様にその裏側をご紹介したいと思います。 当時のiOSアプリが抱えていた課題 KyashのiOSアプリは2017年の4月にリリースされましたが、開発期間は意外に長く2016年2月に最初のコミットがGitHubに入りました。そこから様々なスクラップ&ビルドやiOSチームのメンバーの増減を経てリリース、そして現在に至るのですが、その結果「品質が安定しない」、「普段の開発効率が上がらない」という
はじめに こんにちは、インキュベーション事業部所属 iOSエンジニアの葛山です。 タイトル通り、WebRTCを用いた生放送iOSアプリを開発し本日リリースしましたので、使った技術や苦労した箇所などをプロジェクト振り返り的な感じでまとめられればと思います。 WebRTCを触ってみた的な紹介記事は多いと思うのですがiOSアプリでがっつり採用した事例は少ないと思うのでそちらも踏み込んで書ければなと。 先日リリースした101 LIVEです! また、これからiOSアプリを新規開発しようとする人たちにとっても参考になる記事になれば良いなと思います。 WebRTCとは? WebRTCはWeb RealTime Communicationの略で、ブラウザが直接通信し、映像・音声といったデータをリアルタイムにやりとりすることを可能にした技術です。 通信の特徴としてP2P方式でユーザー間で直接通信を行うためレ
現在AbemaTVでiOSアプリ開発を担当してます、shoheiyokoyamaです。 本記事では、AbemaTVでの「コードの品質について」チームでの考え方や取り組みについて紹介していきたいと思います。 AbemaTV AbemaTVは、オリジナルの生放送コンテンツや、ニュース、音楽、スポーツなど多彩なジャンルのコンテンツを見れるインターネットテレビでiOS、Android、PCなどで利用できます。 チームにジョインした当初は私を含め5人体制でiOSの開発を進めていましたが、現在は倍の10人体制で開発を進めています。チーム増員に伴い、開発スピードは上がりますがその分コードの品質を維持し続けることが難しくなります。 早い開発スピードを長期的に継続していくためには、高品質なコードを維持することが重要です。そのため、早い開発サイクルの中でも高品質なコードを維持する取り組みが必要となってきます。
Basecamp 3 for iOS: Hybrid ArchitectureWe’ve written quite a bit in the past about our approach to building hybrid mobile apps. Basecamp 3 represents the latest generation of this architecture, taking everything we’ve learned from previous versions. The first app for Basecamp 2 app was iPhone only, written in RubyMotion as a thin wrapper around UIWebView. Next, we did a new universal app for Basec
習作としてレシピのマスターデータがあってそれを作ったよというレポートをアプリから投稿できるようなやつを作ってみて感じたこと。 とりあえず動かすのが超簡単 コンソールからプロジェクトつくってキー発行してSDK入れて初期化すればDBにアクセスできて簡単だった。 考えなしに使うと多分いろいろ破綻する DBがスキーマレスなのでなんでもぽいぽいpostできちゃう DB操作する所は1箇所にまとめて抽象化しないと欠けたオブジェクトがDBに乗っちゃったりして詰みそう。そこはSwiftのカチッとした型と柔らかいスキーマレスDBとの境界で大変というかんじ。考えなしに進めてオブジェクトのプロパティがどんどんOptionalになっていくのは見ていられないので抽象化がんばりましょう 既にデータが刺さってるモデルにプロパティ追加したりしても古いデータは当然マイグレートされないので古いデータが落ちてきてパースに失敗する
こんにちは、サービス開発部の森川 (@morishin127) です。主にクックパッドの iOS アプリの開発に携わっています。 日々アプリを開発する中で、近頃は最適なアーキテクチャとは何かを考えながら色々な形を試行錯誤しています。世の中で採用されているモバイルアプリのアーキテクチャには様々なものがあります。MVC, MVP, MVVM, VIPER, Clean Architecture などなど。開発している、あるいは開発しようとしているアプリケーションでどういったアーキテクチャを選択するかというのは難しい問題です。選択するためにはアーキテクチャに求める要件を定義する必要があります。この記事では私がアーキテクチャに求める要件と、それらをある程度満たすと考えた MVVM と Flux という2つのアーキテクチャで実装したサンプルを見つつその長所・短所について考えてみようと思います。 アー
About the content This content has been published here with the express permission of the author. MVVM is the critical design pattern for front-end engineers. There are so many ways that objects can talk to each other in an iOS App: delegates, callbacks, notification. In this Swift Language User Group talk, Max Alexander shows you how to streamline your development process in 3 easy patterns with
Siapa yang tidak tahu iPhone? Ya, iPhone adalah ponsel pintar buatan perusahaan asal Amerika Serikat, Apple, yang sangat mendunia. Dengan menggunakan iPhone, kita hampir bisa melakukan segala hal di sana, mulai dari bekerja, menonton film, bermain permainan, bahkan hingga bermain casino online atau slot online. Untuk bermain itu, tepatnya jika kamu mencari situs slot demo gratis Pragmatic Play no
iOS 10.3がリリースされましたが、APFSへの移行が含まれていて話題です。特に文字コード界隈ではHFS+で搭載されていた暗黙のUnicode Normalizationがなくなっている点が指摘されています1。 ではmacOSではどうなのでしょうか。SierraならばすでにAPFSを扱うことが出来るので試してみましょう。 % hdiutil create -fs APFS -size 1GB foo.sparseimage WARNING: You are using a pre-release version of the Apple File System called APFS which is meant for evaluation and development purposes only. Files stored on this volume may not be ac
はじめまして!iOSプログラマの堤修一と申します。この度こちらで連載をさせていただくことになりました。 最初このオファーをいただいたとき、連載陣を見てびびりました。芸能人クラスに有名な方々、もしくは本当に芸能人な方々ばかり・・・そんな中で一介のプログラマーが何を書けるのか・・・ しかしまぁ、タイミング的に、何が期待されているかというのは想像がつきました。というのも、僕は最近、サンフランシスコの会社に就職したばかりなのです。 2014年から フリーランスiOSプログラマとして活動を始めて2年と8ヶ月。フリーランスという働き方は自分には最高にしっくりきてて、毎日楽しくお仕事させていただいてたのですが、色々とタイミングが重なりまして、タイトルの通り、いったん休業して 「会社員」 になることにしました。 どこに就職するのかと言いますと、サンフランシスコにある Fyusion というスタートアップに
Since before your sun burned hot in space and before your race was born, Safari on iOS has required a user gesture to play media in a <video> or <audio> element. When Safari first supported <video> in iPhoneOS 3, media data loaded only when the user interacted with the page. But with the goal of returning more control over media playback to web developers, we relaxed this restriction in iOS 8: Saf
✅ 100% compatible with UIKit. All IBAnimatable APIs are extensions of UIKit. No pollutions to UIKit's APIs. ✅ 100% compatible with Auto Layout and Size Classes. No custom layout system. ✅ User interface design and preview in IB: corner radius, border, mask, shadow, gradient colors, tint color, blur effect etc. ✅ Animation design in IB: slide in/out, fade in/out, zoom in/out, flip, pop, shake, rota
1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ガールアックス: リアルタイム通信処理の効率的な実装 第7回DeNAゲーム開発勉強会✕モノビット 株式会社ディー・エヌ・エー Japanリージョンゲーム事業本部 技術・編成部 開発基盤グループ 堀米 智彦 tomohiko.horigome@dena.com 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介 堀米 智彦(ほりごめ ともひこ) DeNA 入社5年目(2011年8月 中途入社) ⁃ 前職は組み込み機器向けブラウザ開発 入社後の業務経歴 ⁃ ゲーム向けライブラリ開発 ⁃ Ninja Royale エンジニア ⁃ D.O.T. エンジニア/リードエンジニア ⁃ 三国志ロワイヤル エンジニア/リードエンジニ
<この記事は「Money Forward Advent Calendar 2015」の22日目の記事です> この記事は、iOS Clean Architectureと実際にコードへ適用した内容について紹介します。 コードについては、改善の余地があるため随時修正していくと思います。 → github: https://github.com/koutalou/iOS-CleanArchitecture iOS開発においてよくある問題点 「ビジネスロジックはModelに置くべき」と言うが、開発者によって理解や意見がバラバラで統一的な実装ができない 度重なる仕様変更や複雑な仕様に対応するためにViewControllerや特定のModelが肥大化し、ビジネスロジックの本質を見失う MVC,MVP,MVVMだけで考えると、どこかのレイヤが複数の責務を持つことになり依存度の高い複雑なコードが生まれてし
PDFはこちら 平素より弊社サービスをご利用いただき、誠にありがとうございます。 予てよりプレスリリースにてお伝えをしております、2015年10月07日における、米アップル社運営 App Storeの弊社デベロッパーアカウント停止措置に対する、憶測や事実に反する一部メディアでの報道により、関係各所からのお問い合わせや、ユーザーの皆様からのご心配の声を多数頂戴しております。これらの原因の一つは、弊社によるこれまでの対応が不十分であったとの反省のもと、以下に弊社デベロッパーアカウント停止に至った経緯、既存アプリケーションのアップデートの停止について、および今後のiOSアプリケーションの事業方針につきまして再度お知らせいたします。 ■ App Storeの弊社デベロッパーアカウントの停止の経緯につきまして 米アップル社からのご指摘を受け、規約違反への修正対応を行っております最中での突然のアカウン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く