Swapit Update: The License to Kill!

swapit-blog_downloadOur latest Swapit mobile app update is now available on Google Play and the App Store. We’re now giving you the license to kill!

Update Swapit today: http://get.swapit.la/now

We’re already working on the next version of Swapit and it is scheduled to be uploaded this Friday. Stay tuned!

Want to know more details on what we changed? Here are some insights in our work over the past weeks.

USER INTERFACE & USER EXPERIENCE

As mentioned a couple of weeks ago, we’ve been re-imagining our “Startup Dialog” and the everyday onboarding experience all of our users go through. Previously, our startup dialog was functional, but ugly. So we’ve beautified it and created a generalized structure to be able to communicate important information to the user right after the app launch. Just to give you some examples:

  1. Welcome: Beautifully greet users.
  2. Update Info: Inform users of significant changes.
  3. Suspended: Inform users when their account was suspended (e.g. due to posting items that violate our terms).
  4. Stats: Update users with some important statistics (e.g. 123,523 new buyers signed up in the last 24 hours).
  5. App Update: Let users know if a new app update is recommended or required.
  6. Referral: If users receive a referral reward, they get notified at launch.

… and a lot more. We’ve now identified 17 main cases and 12 sub-cases where such startup dialogs might show. They all now have the same visual structure and allow us to present such information consistently and beautifully.

LICENSE TO KILL (Apple)

swapit-blog_appleYou may now kill at any time! Just the Swapit, though! In our previous Apple app update, we’ve added the delivery of all chat messages directly to the app even if the app was killed before. Now with this release, all messages that can not delivered to the app while it was force-closed, will be automatically synchronized once the app launches again.

What is that? Do you remember my blog post “iPhone Users: Do you kill apps?” and “Swapit Update: Sell with your iPhone (second hand and new)”?

To be honest, the Apple Push Notification Service (APNS) has been and still is a huge pain in the ***! It is though, Apple’s recommended way to send push notifications to iPhones and iPads. They make it sound so fancy and cool on their website, but really elementary things are just not working. That was probably by design, but it is just not practical.

For example:

When you force close an app on iOS, that app ability to receive such push notifications gets stripped down to barely nothing. You must send all content you want to show in the iOS “Notification Center” inside your push message to the app. If such content is not there, nothing can be shown in the “Notification Center”. For chat messages for example, that is easy to implement. The sender’s message content can just be put into that Push notification and be sent to the device. Then the device can show such content even when the app was force-closed before. That’s what we introduced in our last Apple app update last week.

Now, we also send a lot of other push notifications, like:

  • New item nearby notifications
  • Someone likes my item notifications
  • Competing interest notifications
  • New comment notifications
  • … and many more.

Those Push notifications basically just send a status code (e.g. NEW_ITEM_NEARBY) and some ID (e.g. ITEM_ID like “1234567890”) to Swapit. That keeps our overhead and traffic very small and makes our whole infrastructure extremely efficient. Remember? We have extremely low cost of operating our infrastructure.

Now the texts of those notifications are constructed inside our app and then published to the iOS Notification Center, so the user can see them. The construction of those notifications does not work if the app was force-closed before. So all notifications, which come in when the app was foce-closed, could not be shown.

Multi-Language Complexity

Swapit itself is currently available in English and Chinese. The app automatically shows its menus and texts in the language your phone is set to. So we have packaged both English and Chinese language packs into Swapit.

To construct such notifications, we use those language packs to show the correct text to the user. If the app can not run to construct notifications based on such language packs and the phone’s current language setting, then we don’t have any text to use.

Now, similarly to the chat messages (which can be send in any case because they are just pure text which does not depend on the phone’s language, it’s the pure message that needs to be shown in the Swapit in-app chat), we could pre-process all texts on our server backend, which we want to show in the “Notification Center”, and send the ready-to-publish Notification via Push to an iOS device. That would however mean, that we have to manage all the same language packs we have in our Android and iOS app, on our server as well. That creates an additional level of content management for us, which adds overhead and costs.

At the same time, we would need to know (i.e. track) for each user and each of his/her devices, which language is being used there. So if I for example have an iPhone with English language and an iPad with Chinese language, we would need to know the language for each device, so we can prepare each notification for each device separately, so I receive a notification in English on my iPhone and a notification in Chinese on my iPad.

Soon we will add more languages to Swapit, which would make everything much more complex, require more processing power and increase costs dramatically with each language – if at the same time, we still want to maintain our requirement of real-time and send push notifications out within seconds.

Apple Push Notification Service APNS – A Long Way To Go

Now, all of these headaches were caused by the APNS. It is poorly implemented and is just not up to par when you compare it to Android’s Firebase Cloud Messaging FCM and even when you compare it to BlackBerry’s Push Notifications. I truly hope, Apple will hire some great Push engineers some day and build a really useful solution. We’d be the first ones to use it.

The Solution

Our current solution is far from perfect, but it works well enough given the limitations APNS offer us. Here is how it works:

  • Chat Messages:
    Push messages get sent “as-is” with the full chat message as payload to each iOS device. So they can be shown directly in the phone’s Notification Center; no matter if the app was force-closed or not.
  • All Other Push Notifications:
    Any other push notifications (e.g. new item nearby) will be synchronized the next time the user opens up Swapit, if the app was force-closed before. If Swapit was not force-closed, everything works as normal and Push Notifications get shown instantly in the Notification Center.It is impractical for us to send the full text of the notification along as payload in the correct language just for each iOS device – and only so it can be shown correctly int he Notification Center in the case the app was force-closed.

So to sum it up: No notifications will ever “get lost” again on iOS. No matter if you kill Swapit or not. So we now give you the license to kill Swapit.

MORE SWAPIT INTEGRATION

After launching the Swapit integration schemas last year, we’ve also added more schemas to integrate with Swapit. Some are still missing and I will blog more about the whole set of new schemas soon.

swapit_screenshots_1-14-1-2_6_homescreen_croppedBEAUTIFYING SOME PLACEHOLDERS

We’ve also updated our funky user profile image placeholder. It was bugging me for a while that our previous placeholder image was rather ugly. Some of our users are just lazy to update their profile image, so we need to show a placeholder image instead, which as a result actually shows up quite often. I am happy with the new one. What do you think? Is that something you like too?

UPDATING THE IOS COLOR SCHEME

On iOS, we are using a tab bar compared to the navigation pane on Android. Yet, the color scheme we used there wasn’t making very much sense. Especially when you consider the fact, that we’re actually mixing the functionality of the tab bar a little bit. The center button in that tab bar is the “+” button, which lets you post new items on Swapit. That’s significantly different from the other tabs there, which basically just switch the content in the screen above. So anyhow, the color scheme of icons in the tab bar and the “More” overflow list of that tab bar, were not very consistent. We’ve updated that to make more sense if it and have a much better UI/UX feel.

UNDER THE HOOD

Most changes above were fairly small changes, but they are quite visible to our users. At the same, the majority of our changes were done under-the-hood and on our backend. That’s how we’re preparing for some major releases coming in the next weeks to you. Swapit’s metrics a growing rapidly across the board and we are readying ourselves for upcoming uptakes on a massive scale. Stay tuned for more on that. We will surely write about them here on our blog.

Have you tried Swapit yet? You can get it from: http://get.swapit.la/now

Advertisement

Swapit Update: Sell with your iPhone (second hand and new)

swapit-blog_appleAfter launching our very first version of Swapit on the Apple App Store a while ago, and numerous updates and feature launches in between, today we launched the most wanted Swapit feature on iPhone: You can now Sell your items whether they’re new or pre-loved, you decide.

GET THE SWAPIT UPDATE NOW:
http://get.swapit.la/now

We’ve been working hard to get this feature out as quickly as possible. Sometimes it just takes a little longer than expected. In this particular release it’s not just about allowing people to post items for sale. You also need to be able to edit an item, take it offline, mark it as sold, manage your buyers and so on. There are all these little bits and pieces that take user experience to the next level and we are meticulously working on making them available to you in just the best way we can imagine.

swapit-ios_screenshots_1.0.10_1_collage

In fact, this update comes with over 30 changes. Here is a quick list of some of the most important changes:

  • Added SELL and GIVE AWAY of items (incl. edit, mark sold, active/inactive)
  • Added push notification handling for
    • incoming interested buyers of your items
    • reminder for posted items you sell or give away
    • new likes on items
    • new comments on items
  • Added “Notifications” section to the Inbox
  • Resolved an issue with “Open Chat” button in item details

Furthermore, we’ve put in some important performance enhancements and resolved several other minor bugs and issues.

IMPORTANT NOTICE to iPhone Users: Do Not Kill!

Swapit uses push notifications to deliver chat messages and notifications to your device. If you force-close Swapit you will not receive any such notifications until you restart Swapit or your device. We recommend not to force-close Swapit.

84% of iPhone users we asked, are force-closing their apps. That’s a surprise to me — especially as it does NOT save any battery, like it used to many years ago. So if you’re one of those 84%, you’re not making a difference in terms of battery savings by force-closing your apps, but some of those apps might actually stop receiving push notifications then. That’s also the case for Swapit. It’s nothing we can do about, it’s a special case defined by iOS and we have to abide by that. In short, force-closing apps just makes your phone’s performance worse rather than better – generally speaking.

Read more about this topic at: Apple’s software SVP says quitting multitasking apps not necessary, won’t offer improved battery life

 

ANDROID USERS

swapit-blog_android-1Your app has been updated too, earlier this week. You can head directly to Google Play and get the latest update too. Though, our changes weren’t as significant as on the iPhone, we’re always looking out for you and you got quite some nifty little tweaks and enhancements under-the-hood with the latest update.

Get the latest Swapit today from: http://get.swapit.la/now

 

Swapit iOS App Launched on the Apple App Store

swapit-blog_appleHello iPhone Users!

We’ve just launched our first public version of Swapit on iOS. You can go directly to the App Store or download it from there.

Swapit Download: http://get.swapit.la

It is currently possible to browse the whole Swapit catalog of items, interact with sellers and actually buy items from sellers. It’s not possible to post items yourself yet, but we will be adding that capability soon. Stay tuned!

As an avid reader of our blog, you’ve probably been aware of our Swapit iOS beta, which we’ve been running for a while. We believe in building native apps with a native look and feel for users. In very simple terms: iPhone users who open Swapit on their iPhone for the first time, need to feel right at home. Without any need for a tutorial or instructions, they need to be able to navigate Swapit in the way they are used to navigate other apps. The same counts for Android users who also need to feel right at home, when they’re launching Swapit. Therefore, our iOS app and our Android app look a bit different in terms of user interface. We’ve been discussing a lot about that internally (read To Tab A Bar Or Not To Tab A Bar – on iOS for more).

We’ve also had to overcome many requirements imposed by Apple during the approval process of Swapit. Check out Getting Swapit approved on the Apple App Store is not that easy, for example. While that was only a first taste of their feedback, we’ve had many more conversations with the Apple Review team, but in the end we managed to launch Swapit on the App Store. Here is how it looks like:

So again, if you’re an iPhone user, feel free to download Swapit today: http://get.swapit.la

Getting Swapit approved on the Apple App Store is not that easy

swapit-blog_appleWe’ve been working hard on getting Swapit on iOS launched as soon as possible. Over the many years in the app business, we have some experience in launching apps into app stores — this includes the App Store, of course.

Our initial plan was to bring the Swapit iOS app up to a point where buyers and sellers can trade and then publish the app on the App Store. So we looked at the app’s features, tried to break it down into as many small pieces as possible so we could define a MVP that we can hand out to our beta testers. In fact, we managed to launch that only 1 month after hiring our iOS developer.

We are running our beta test on Apple’s TestFlight for quite a while now. It’s not possible to buy or sell anything, but it is already possible to list items, view details, do spacial queries and interact with items – to some extend at least.

About a month ago we looked at our state of the iOS app and we realized that it’ll take at least another 1-2 months before we could launch a somewhat fully functional iOS app. Now, we’ve got the RISE conference coming up (more news on that here) and we are also constantly talking to investors and users alike, many of which have an iPhone. So we needed to be present on the App Store ASAP.

Landing App – A Crashlanding

Remember the landing app we built for Android? We figured, why not doing the same on iOS? We knew it would literally take us a day to build that; and so we went ahead and created it quickly. We uploaded the app to the App Store and submitted it for review.

Over a week later, we got a reply from the App Store review folks that they denied our app release for the following reason:

Apps that are “demo”, “trial”, or “test” versions will be rejected. Beta Apps may only be submitted through TestFlight and must follow the TestFlight guidelines.

Granted, our landing app was what it was: An app to leave your contact details, so we can reach out to you once the actual app is available. Hence, there was no “real” functionality provided in the app. I’ve argued our case and explained why we did what we did and that our only motivation was to make our (potential) users happy by allowing them to find us on the App Store. Many people I talk to, just go directly to the App Store, search for “Swapit” and want to download the app. At this moment, they can’t find it and that’s a bad experience for them. We merely tried to remedy that situation and make users happy.

That wasn’t enough for the App Store review team. But they did actually ask us to provide a contact number and they would call back. I was surprised. Thinking about the sheer amount of apps that are available on the App Store and all of those require reviewing, I am wondering how many people Apple employs for that — given that they also make phone calls in some cases.

So another 1-2 weeks later, I receive a phone call from the App Store Review Team. I explained everything again, in more detail now, more about our motivation, our background, our traction, and so on. It all didn’t help. The binary we submitted would just not be approved. Period.

Sometimes you just got to suck it up and get back to work. It sucks, but it’s the only way.

Landing App + Browsing Experience

Yet, I got some fruitful information out of the phone call. It would apparently be acceptable to submit an app that is like our landing app (i.e. it asks for the user’s contact information), but there has to be some kind of added value after that. In a very simple case, once it’s possible to actually browse content after leaving your contact details, we should be passing that single requirement, which the Swapit landing app failed during review. However, such a “forced-signup” process during the app start, does in our case create another hurdle. While there might be some apps that really have to require a log in before allowing the user to access any data, Swapit does also contain data, which should be accessible by anyone – no matter if he or she has left any contact information. So in short: It must be possible to skip the sign up process. We’ll make that possible.

No Betas

Furthermore, we are not allowed to mention anything about beta, pre-release, etc. anywhere in the app or the app’s description on the App Store. Well, fine. We can skip that, but yet it won’t present Swapit to potential users in the most transparent way. While we constantly do our best to make sure we don’t have any bugs in Swapit, we still wear the “beta” label. That’s important for us, because we know we are not perfect. Swapit is a work-in-progress app and platform, and we know we will have bugs from time to time. So well, now we just need to skip any notice about this in our iOS app. At the same time, we are working harder to make sure we deliver the best-in-class marketplace on your mobile.

Stay tuned. Keep your iPhones charged! We’ll soon be ready to announce the availability of Swapit on the App Store.

If you have an Android device too, go to http://get.swapit.la and download Swapit today.

Getting Ready for Swapit iOS BETA – Get Yourself on the List Today!

swapit-blog_appleIt is kind of like an open secret, but we are working on the iPhone / iPad app of Swapit. Of course, we are building a native app to ensure a superior user experience. Some of our competitors put out a “web app”, with which I mean it’s an HTML5-based app that looks like a native iOS app. We just believe a real quality app needs to have a very native feel. It must be snappy, it must be beautiful and it must be very resource efficient. All such things are rather hard to achieve with a “web app”, but to us quality is paramount and therefore, we’re going the long way.

swapit-blog_testflightAs soon as our Swapit iOS app is ready to be tested, we will launch a private beta test through Apple’s TestFlight Beta Testing. It’s a great way and actually the official way to get a beta to your iPhone or iPad. To be on the list for our iOS beta test, please enter your information at the following form:

Request Access to SWAPIT iOS BETA:

swapit-blog_requesthttp://goo.gl/forms/jmla9ITbCP

Seats are limited (by Apple, btw). So be quick to join.

Your privacy is important to us!
We only ask for your name and email address. That’s required by Apple TestFlight so we can send you a join email once our iOS beta test is ready for you to join.