Basecamp 3 for iOS: Hybrid Architecture – Signal v. Noise


36 bookmarks. First posted by bf4 14 days ago.


One thing we deeply value at Basecamp is independence of teams. If we had to coordinate the development and release of every feature with the web, iOS, and Android teams all working in lockstep, we’d never ship anything. This architecture allows our web team to build a new feature and ship it simultaneously across all platforms. By default, we have a view controller that can display any url in Basecamp 3, so any new urls will just work in the app. We can iterate and experiment on the web, ship immediately on all platforms, and later make it native if feel we can improve the experience.
This also lets us the mobile teams focus on how to best serve the platform. One of our goals is 100% coverage in the mobile apps, you should never have to go to the desktop because the apps don’t support something. With our solid foundation provided by the web, we can deliver on that goal, and then focus our efforts on platform-specific improvements.
web  ios  android  app 
4 days ago by joakin
Turbolinks
5 days ago by drex
We’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…
ios  mobile  hybrid 
8 days ago by lenciel
We’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,…
from instapaper
9 days ago by adamlogic
We’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.
10 days ago by gzhihao
We’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,…
from instapaper
11 days ago by divigation
Good detailed look at our hybrid iOS dev approach: 70% webview, 30% native, and how they're connected by
from twitter_favs
11 days ago by samin
Good detailed look at our hybrid iOS dev approach: 70% webview, 30% native, and how they're connected by
from twitter_favs
11 days ago by jeeves
A detailed look at how we do hybrid iOS development, using the Basecamp 3 app as an example: (via )
from twitter_favs
11 days ago by kucingaudio
A detailed look at how we do hybrid iOS development, using the Basecamp 3 app as an example: (via )
from twitter_favs
11 days ago by iwaffles
We’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.
IFTTT  Pocket 
11 days ago by deepblue
In our use, we’re referring to standard native apps where a significant portion of the content is rendered using web technology. I explicitly say content there because it is an important distinction. We’re not using a framework that attempts to mimic native controls using HTML/CSS. We’re not using a framework that tries to compile another language to native code, or make a cross-platform app from a single codebase.
app  webdev  iOS 
11 days ago by jayfree
We’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,…
from instapaper
11 days ago by evanwalsh
For Basecamp 3, we’ve replaced Objective-C with Swift, UIWebView with WKWebView and added Turbolinks, with even more native code, and a deeper integration between native and web.

For us, it means using Xcode + Swift, and conforming to all the platforms conventions regarding navigation/presentation. The building blocks of our app are composed of UINavigationController, UITabViewController, UISplitViewController, UIViewController, etc. Within those containers, we have many screens where the content is built using UITableView or UICollectionView, we have even more where that role is filled by a WKWebView.

he primary code here is a local JavaScript file (written in TypeScript) embedded in the app and injected into the web view using WKUserScript. This provides native code an API for communicating with the web view without needing to directly query the DOM or do complex JS. Using a WKScriptMessageHandler, we can respond to messages sent from the web view through the bridge.
ios-development  hn  mobile-development  best 
11 days ago by hellsten
We’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…
11 days ago by jokela
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 Basecamp 2, written in Xcode + Objective-C, still a using UIWebView, but with a bit more native code thrown in. For Basecamp 3, we’ve replaced Objective-C with Swift, UIWebView with WKWebView and added Turbolinks, with even more native code, and a deeper integration between native and web.
development  app 
11 days ago by johanl
We’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.
37Signals_Basecamp  37Signals  37Signals_Blog 
13 days ago by GameGamer43
📝 Wrote a bit about the hybrid architecture we use for Basecamp 3 on iOS since I’ve had some people ask for details
from twitter_favs
14 days ago by 61
📝 Wrote a bit about the hybrid architecture we use for Basecamp 3 on iOS since I’ve had some people ask for details
from twitter_favs
14 days ago by floehopper
📝 Wrote a bit about the hybrid architecture we use for Basecamp 3 on iOS since I’ve had some people ask for details
from twitter_favs
14 days ago by bf4