An overview of client-server architecture with respect to mobile and web apps. This discussion weighs tradeoffs between thin and thick client approaches.
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Building Networked Apps
1. Building Networked Apps
Slice Technologies at Dubhacks
Seattle, WA
Slice Confidential – Do not copy or distribute without prior written consent
2. Networked Apps
Client-Server
Ok, great. Now what?
Slice Confidential – Do not copy or distribute without prior written consent
3. Architecture
• Building software = weighing tradeoffs
– Ultimately depends on requirements
• Networked apps
– Do work on client?
– Do work on server?
Thin vs. thick clients
Slice Confidential – Do not copy or distribute without prior written consent
4. Thin Client
More work on server
Slice Confidential – Do not copy or distribute without prior written consent
5. Thick Client
More work on clients
Careful: sync is hard!
Slice Confidential – Do not copy or distribute without prior written consent
6. Most apps are hybrid
Web apps
E-commerce (Amazon)
Social (Facebook)
Productivity (Evernote)
Games (Single-player)
Utility (Camera) Thick
Slice Confidential – Do not copy or distribute without prior written consent
Thin
7. Which to choose?
• Trend towards thinner clients
– Networks are much better
• Have your own server?
• Or using a third-party API?
• Start thin, add on thick features
• Keep your network layer separate!
Let’s take a look at Slice…
Slice Confidential – Do not copy or distribute without prior written consent
8. Slice App
• Loads all user purchases
• Search, totals, and trends
• Problem: latency
– Sluggish interface
– Slow start-up time
Solution?
Slice Confidential – Do not copy or distribute without prior written consent
9. Fatten up!
• Local database
– Data persistence
– Indexed search
• Simplified refresh
– First import, then update
• Don’t want to solve sync yet
– Synchronous edit
Slice Confidential – Do not copy or distribute without prior written consent
10. Image Search
• Product images
• Done on client to avoid rate limits
• Complex and distributed logic
Search “Steve Jobs” book
Web iOS Android
Slice Confidential – Do not copy or distribute without prior written consent
11. Slim down…
• Centralize logic
• Search triggered by apps, done on server
• Consistency between platforms
• Some downsides
– Extra cost
– Throttling
– Ok at our scale
Slice Confidential – Do not copy or distribute without prior written consent
12. Takeaways
• Spend a little time on architecture
• Start thin, add on thick features
• Keep your network layer separate
• Weigh thin vs. thick clients
– Application needs
– Network
– Development time
Slice Confidential – Do not copy or distribute without prior written consent
Hinweis der Redaktion
You’ve now learned how servers serve up resources through APIs, now we will discuss how to architect client apps to consume those resources
Networked apps are clients to servers
Talk is platform independent - web, iOS, or Android
Consider architecture – hack, but more productive later, better understanding
Hack vs. robust design, focus vs. features
Make big and small
Facebook example –
TripIt?
Cache
Not MMORPG (single player)
This is the slide to sink home relevancy!
Separate out networking code – makes it easier to do these changes