Our 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:
- Welcome: Beautifully greet users.
- Update Info: Inform users of significant changes.
- Suspended: Inform users when their account was suspended (e.g. due to posting items that violate our terms).
- Stats: Update users with some important statistics (e.g. 123,523 new buyers signed up in the last 24 hours).
- App Update: Let users know if a new app update is recommended or required.
- 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)
You 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.
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.
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.
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.
BEAUTIFYING 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