こんにちは、アプリケーション共同開発部のみなみです。 iOSアプリ開発を始めてから様々なライブラリを使ってきました。その中で特に強力でおもしろいと感じたのが、Rx (Reactive Extensions)に影響を受けたReactiveCocoaや、RxのSwift実装であるRxSwiftです。Rxライブラリとそれが実現するリアクティブプログラミングは、アプリ開発を大きく変えました。この記事では普段の開発で感じたRxライブラリの威力や課題、そして未来について書きたいと思います。 Rxライブラリは何を変えたのか イベント通知の統一 フラグ変数、深いネストを一掃して見通しが良くなった 複雑な非同期処理を分かりやすく表現 Rxライブラリの課題 依存度の強さ イベントを実行することの影響が予測できない 高い学習コストが割りに合わない部分がある 課題への解決策 async/await Redux 未
こんにちは、アプリケーション共同開発部の中澤です。 iOS 9 から登場した Safari View Controller (SFSafariViewController) は、 Cookie 等のデータが Safari と共有される Web ビューとして認知されています。 この仕様によって各種 Web サービスのログイン状態等も共有され、それによってユーザーはそれぞれのアプリで認証が容易になっていました。 しかし、 iOS 11 ではその仕様が変わり、 Safari や各 iOS アプリで表示される Safari View Controller は、Cookie やローカルストレージ等データをそれぞれ別の場所に保存するようになると、 WWDC 2017 にて発表されました。 以下、その発表があった What’s New in Safari View Controller からの引用です。
チームでiOSアプリの開発をしていると、ビルドのコストが肥大化しがちです。ピクシブでは、ビルドとテストをMac mini上に構築したJenkinsで行っているのですが、ビルドキューが詰まり、開発速度が上がりにくくなっていました。 これを改善するため、最近、iOSチームのビルドサーバーを、Mac mini 1台から3台に増やし、マスター・スレーブ環境でビルドできるようにしました。今回、そのための設定について、エンジニアの @anchan から紹介します! ビルドサーバーの環境設定は、GitHubに公開しています! モチベーション Xcodeは1台のマシンでビルドを並列化できません。チームメンバーとアプリの数が増えるにつれ、それに比例してJenkinsのビルドキューが詰まるようになりました。 Mac mini 1台では厳しくなってきたので、Mac mini 3台でJenkinsのマスター・スレ
大石制作ブログblog.s004.com デザイナー大石真也が 知りたかったこと、見たかったことのメモと、仕事紹介。 自己紹介・サイト説明依頼・価格・お問合せタスク管理パートナーtwitterfacebookatom feed OS Xをスクリプトで行う自動操作は、AppleScriptで制御する場合はそのまま「AppleScript」、JavaScriptの場合は「JavaScript for Automation(以下JXA)」と呼ばれています。ちょっとややこしいけど、慣れるしかないでしょう。 僕は元々AppleScript自体がほとんど分からない状態だったけど、どうやらAppleはOSXのスクリプティングをAppleScriptからJavaScriptに置き換えたいらしいです。 AppleScriptは全然だけど、JavaScriptならチャンスか? 気が向いたのでJXAを触ってみる
Hero is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit's cumbersome transition APIs—making custom transitions an easy task for developers. Hero is similar to Keynote's Magic Move. It checks the heroID property on all source and destination views. Every matched view pair is then automatically transitioned from its old state to its new sta
サイトのメンテナンスにおいてしばしばネックになるのは、どんなネーミング・構成で制御しているのか分からなくなってしまうことです。しっかりと基準に則った、誰がいつ見てもわかりやすいネーミングでコーディングしていくことは、非常に重要なことです。 今回は、プログラマーがネーミングを考える際に参考にしたいサイトを選んでご紹介いたします。 1. codic - プログラマーのためのネーミング辞書 https://codic.jp/ 様々なサイトに紹介され、「ネーミング」で検索しても上位に表示される素晴らしいツールです。例えば、Webサイトの背景に動画を設置する際に、class名をどうしようか悩んだとします。そこでcodicに「背景動画」と入力すれば「background_videos」と提案してくれます。提案されたネーミング以外にも、その他の候補も出てきます。 考える労力を省くことができるという点で優
この記事は、ピクシブ株式会社 Advent Calendar 2016 の19日目の記事です。 qiita.com こんにちは、2代目社内旅行エンジニアこと@ikです。 普段は社内サービスで利用する決済システムを主に開発しています。今回の記事では、Google Apps Scriptを使用して、スプレッドシートの自動更新や、自動でのメール送信、Slackへの定期投稿などを行い、業務を効率化させる話をします。 Google Apps Script とは GASで出来ること スプレッドシートのデータを読み書きする メールを読み込む、送信する 外部サーバにGET, POSTする なぜGASが良いの? 実際に業務に使えるスクリプトを作る 毎日の日直をSlackに投稿する スプレッドシートが更新されたらSlackに投稿する 変更があるたびに投稿する 1時間に1度、更新を確認して、更新されていたら投稿
一様乱数をひたすら足し算すると正規分布ぽくなる 乱数にコクを出す 実行 (github.io) 実行 (run-p5.web.app) code:normal.js function setup(){ createCanvas(200,200) histogram = [] for(i=0;i<100;i++) histogrami = 0 strokeWeight(0) } function draw(){ val = 0 for(i=0;i<10;i++) val += random(1/10) histogramMath.floor(val * 100) += 1 fill('yellow') rect(0,0,200,200) fill('blue') for(i=0;i<100;i++) rect(i*2,200-histogrami,2,histogrami) } #正規分布
7.2 JSONの処理 JSON(Javascript Object Notation)は軽量なデータ記述言語です。文字を基礎とした言語のテキスト形式で、C言語ファミリーに似た習慣を採用しています。JSONとXMLの最も大きな違いはXMLが完全なマークアップ言語であるのに対し、JSONがそうでない点です。JSONはXMLに比べ小さく、早く簡単に解析でき、ブラウザのビルトインの素早い解析のサポートもあり、ネットワークのデータ転送分野により適しています。現在我々が見ることのできる多くのオープンプラットフォームでは基本的にJSONをデータ交換のインターフェースとして採用しています。JSONはWeb開発の中でもこのように重要でありますから、Go言語ではJSONのサポートはどうなっているのでしょうか?Go言語の標準ライブラリはすでに非常に良くJSONをサポートしています。JSONデータに対してとても
If you own an Apple Watch, you probably noticed something disappointing: 3rd party apps are SLOW. If you've written a watch app, you'll know that a big part of the problem lies in the bandwidth limitations of phone to watch communication. Architecting a performant WatchKit extension can be difficult due to the write-only nature of WatchKit UI elements and the stringly-typed nature of controllers.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く