Measuring Network Throughput for Mobile Apps (Part II)

Date By Ravishankar Achanta, Aaveg Mittal Tags Network / Speed

In part I of this series we illustrated some cases of how you can measure throughput for a single file transfer and for requests that happen in series. We also discussed examples of transfers with parallel requests that should (and do) have the same throughput, but our calculations showed vastly different throughput numbers for different level of parallelism. This is because parallelism makes it complicated to measure the actual throughput achieved by the channel. While measuring throughput for serial transfers is straightforward using a method to calculate weighted averages, parallel transfers are typically measured in isolation by commonly used tools, which produce misleading results. So how should you go about measuring throughput for a mobile app?

Read more ...

Measuring Network Throughput for Mobile Apps (Part I)

Date By Ravishankar Achanta Tags Network / Speed

If your application has downloadable content and you care about how fast that content is getting delivered to your users, you should accurately measure the throughput seen by your app. Now, this sounds pretty simple in principle. Just take the amount of data transferred and divide it by the time taken. While that principle is true, putting it into practice can be surprisingly tricky when multiple parallel transfers are involved. We'll walk through some examples and try to develop an intuition for the complications involved.

Read more ...

What Apple's Mandate of HTTPS in iOS 9 Means For You

Date By Stan Hu, Tim Doyle Tags iOS / HTTPS

HTTPS

With the release of iOS 9, Apple has pushed developers to use HTTPS by default. While HTTPS provides an additional level of security, this change to HTTPS comes with some cost. This post discusses the implications for app developers and PacketZoom users.

Read more ...

Continuous Integration with the AWS Device Farm

Date By Leanid Vouk Tags Android / testing / automation / AWS / Device Farm

aws device farm

A few months ago Amazon introduced a cloud service named Device Farm for iOS and Android developers to test their apps on physical smartphones and tablets. At the moment they have 200 unique Android devices available to test on with the following testing frameworks supported: Appium Java JUnit, Appium Java TestNG, Calabash, Instrumentation, UI Automator, XCTest.

Read more ...

Introducing PacketZoom for Android

Date By Leanid Vouk Tags Android / networking / http

We're excited to announce the public release of our Android SDK today. At PacketZoom we designed a modern, UDP-based network protocol with mobile apps in mind. This enables faster downloads, reduced latency, efficient and reliable data transfers between your app and the cloud. You can download the SDK here.

In addition to speed, one of the advantages of PacketZoom is that it handles seamless transition between networks without interrupting ongoing sessions. This is a unique advantage of the PacketZoom protocol over HTTP/TCP stack in common use today. You can learn more about the PacketZoom protocol and our cloud service here.

Read more ...

Which Android HTTP library to use?

Date By Leanid Vouk Tags Android / networking / http

Today almost every app uses HTTP/HTTPS requests as the main transport for transferring data. Even if you're not using HTTP directly, there are dozens of SDKs which you may have included in your app (e.g. analytics, crash reporting, ads, etc.) that use it for networking. There are quite few good HTTP libaries available today, which any developer may consider to use in his project. I'll try to cover the main ones in this post.

Android developers have many different reasons to choose third party HTTP libraries over existing public APIs, such as HttpURLConnection or Apache Client. For example:

  • ability to cancel network calls
  • execute requests in parallel
  • connection pooling to re-use existing socket connections
  • local caching of responses
  • simple async interface to avoid blocking in main or UI thread
  • wrapping REST API calls
  • retry policy and backoff
  • efficiently load and transform images
  • serializing through JSON
  • support SPDY, HTTP/2
Read more ...

Lessons Learned: TCP slow start doesn’t have to be so slow

Hello! I’m Aaveg and I like taking long rides on my motorcycle and watching exciting cricket matches when I can find them. I’m also a Lead Engineer at PacketZoom working on our UDP based protocol and this is my first blog post. I’m hoping to shed some light on areas of mobile networking that I believe could be done much better. In particular, I'd like to shed some light on the problem of TCP slow start, why is it required, and what kinds of things we do to avoid the "slowness" of the slow start in PacketZoom protocol. Read more ...


Summer at PacketZoom, Part 1 of 2

Date By Alex Markovits

Each summer PacketZoom runs an internship program for college students around the country. This year we had two engineering interns, and we've asked them to describe their experience working here.


Hi, my name is Alex Markovits. I'm a rising senior at MIT in computer science. This summer I worked at PacketZoom, and today is my last day! TL;DR: would recommend.

I learned a lot with very little hand holding. On a daily basis I was exposed to some new tool---Kibana, re:dash, Ansible, Consul, supervisord, cron, Wireshark, the "lsof" command... the list goes on. By the end I had touched nearly every piece of the backend. It's wild how much intuition I gained every time I expanded my knowledge of the bigger picture. Most importantly, I was in the presence of incredibly good engineers. Read more ...


Summer at PacketZoom, Part 2 of 2

Date By Jatin Mistry

Each summer PacketZoom runs an internship program for college students around the country. This year we had two engineering interns, and we've asked them to describe their experience working here.


Hello, my name is Jatin Mistry and I will be graduating at the end of Fall 2015 from George Mason University. Over the past few months I have been working as a summer Intern at PacketZoom Inc. It has been a really good experience as I got to work with some brilliant people in the industry.

I had always heard that working at a startup, it’s mostly a small well-gelled team trying to do some really awesome stuff. This is very true of what I experienced here at PacketZoom. Being a small team, it’s not feasible for everyone to keep tabs on what is happening with their complex systems at every moment. You need some mechanism through which you can monitor changes regularly. That means you need to make sure that daily tasks are automated, do the system monitoring for you and give you a gist of updates about the system. Automating tasks increases the productivity of the team. My work for the summer was directly related to these ideas. Read more ...


Let's not use HTTP over TCP for mobile apps anymore

Date By Chetan Ahuja

Spinning Wheel of Death

It was a sunny California day, sitting in Caltrain on my way to Mountain View, staring at the dreaded spinning wheel of death that I finally snapped.

WhyDoesn'tItShow

I'm sure this resonates with millions of frustrated mobile users world-wide. Even more so among the next N billions of mobile users ...

Read more ...