Projects Archive - iteo https://iteo.com/projects/ iteo. Web and mobile application developement Thu, 14 Jul 2022 10:44:37 +0000 en-US hourly 1 InPost https://iteo.com/projects/inpost/ Wed, 23 Jun 2021 09:19:20 +0000 http://localhost/iteo/?post_type=projects&p=407

InPost

Reinventing logistics with a contact-free delivery.
image

Details

  • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
  • Timeframes Ongoing since 2017
  • Innovation Remote parcel locker opening and MultiLocker
  • Technologies Swift, Kotlin, Angular
  • Business sector Logistics
  • iteo Team 3 x Android developers
    2 x iOS developers
    3 x QA specialists
    1 x Scrum Master
    1 x UI designer
    1 x UX designer

Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    image

    Innovation

    Remote Parcel Locker opening

    By allowing the users to collect their packages more seamlessly and quickly, InPost can deliver even more parcels every day!

    The functionality has been shared with the app’s version 2 release. The process of parcel collection needed to be fully intuitive and similar in both InPost mobile app and Parcel Lockers.

    The process of remote parcel locker opening is designed precisely not to interrupt the Client’s system.

    The functionality was highly praised by the users, contributing to their everyday convenience.

    Multilocker

    Effective optimization of the process of picking up the parcels from lockers.

    The solution resulted in a larger number of free lockers for other clients that made an order using the InPost services. Usually, when the lockers were overstuffed, the courier had to park in front of the Parcel Locker and it took a couple of hours to hand the packages over to the customers.

    With MultiLocker, the effectiveness of the whole system grows, as the delivery person can put a couple of packages ordered by one person in a single locker.

    Labelfree parcel posting

    Posting parcels using the InPost app is the first service of this kind available on the market. This functionality has been released with the new app’s 3.0.0 version.

    The new feature’s goal was to maximally facilitate the process of posting the packages:

    • Possibility to post parcels directly from the InPost Mobile app
    • Sending the parcels 24/7 not needing to print or stick the label
    • Convenient posting process without queues
    • BLIK payment option
    • Broadening the option of payment and implementing new functionalities for the posting process in the app in the future
    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    MVP

    The next step was creating an MVP – Minimal Viable Product

    It included basic, most essential features that needed to be developed in the future.

    UX & UI design

    After creating the second prototype (based on MVP), we designed the UX to track shipments as well as other side components of the application.

    We chose only the ones that fully represented our Client’s business value. Although at this point the structure of the app remained unchanged, we redesigned it according to the company’s brand book, including color consistency and the use of new fonts.

    image
    image
    image

    Challenges we faced

    Transition between versions 1 and 2 of the InPost app included app stores updates.

    Downloading a new version of the app from the store is connected with reading the HTML code. If an app store introduces even a small
    change, the app’s functionalities may stop working and the level of
    security may drop.

    To avoid the risk, we decided to use API needing to implement some
    adjustments on the backend side. Version 3 of the app was released in 2020 and introduced InPost Mobile to Huawei App Gallery.

    Problems with API required looking for a better solution. We found it developing the version 2 of the app.

    In the app’s first version, API has been based on the mocks which simulate the target functionality. After the development, it became clear that it required rebuilding.

    We solved it differently in the version 2 of the app. API was ready before the functionalities were made or during development. This way we were able to avoid time delays in the project.

    Secure process of verification.

    We had to minimise the risk of handing over the parcel to a wrong user.

    When a user wants to collect a package remotely, the app sends a request with parcel’s number, pickup code and device location (within a certain range) to the system. If the verification is successful, the session opens up, and if not, the session is rejected.

    Length of time for each step of the locker opening process.

    The solution suggested by InPost required a demanding process of programming. We had to face all the potential difficulties it came with.

    First, we had to calculate the time for each step in milliseconds instead of using time frames. This way the app receives the times, verifies and converts them to the local time, and then passes them between classes that are responsible for locker opening.

    Now, the time spent on the screen is added to the current hour. If the locker opening request is confirmed by the app, the next actions are taken by the Parcel Locker.

    Each machine has its own computer connected to the InPost system being able to take care of each step and properly send the data.

    image

    Solutions we offered

    Avoiding client’s system overload.

    Firstly, remote Parcel Locker opening was based on sending requests to ask the API about the status of the locker. But it came with a risk.

    The requests we sent every second so the system would make sure that the locker door is open. But this solution was highly problematic, especially during so-called “peak” moments, e.g. during holidays when the demand for package delivery rapidly grows. Too many requests per second could cause an overload of the InPost systems bugging or stopping them completely.

    We’ve decided that the request should be blocked by InPost until the locker’s status changes (possible options being “open”, “fail” or “timeout”). The whole process is very quick but it requires extending HTTP timeouts. The default time for the whole app is 10 seconds. In this case, we needed to create a separate API configuration so the timeout for one request can take 30 seconds. It was the easiest solution to avoid the system’s overload.

    Closing the parcel locker door.

    If a package is taken out of the locker and the door are being locked, a user can click the button confirming the operation – then the app sends a request to InPost’s API with a message that the doors are locked. But what if they aren’t?

    The fix was quite simple. After clicking the “Parcel taken out” button, the app shows a screen with the “Door closed” announcement. It doesn’t send an API request and goes straight to the summary. This way, a user isn’t blocked on one screen – especially when the door is damaged and can’t be closed.

    At this point, after summarizing the process, a user has an option to send a complaint, for example when the package has defects.

    Distance issues

    Remote Parcel Locker opening shouldn’t work from a random distance.

    The solution was fast and simple but it couldn’t allow users to open the locker from their home when their significant other is passing by the Parcel Locker and wants to pick up their package. We needed the app to verify the distance between the person collecting a parcel and the locker.

    We wanted to avoid the situation in which the app says that the client is not actually near the locker.

    The first tested solution was to drag the last known phone location, but this method wasn’t efficient though. After checking the logs, it appeared that the localization could be determined using data from a couple of minutes earlier which was interpreted by the system as being too far from the Parcel Locker. At this point, the app wouldn’t agree to open the locker remotely.

    It’s usually applied in apps that don’t have any navigation requirements and don’t need very detailed data. Unfortunately, tests done by InPost showed that this mode is not enough – it located the device within 100 meters or more and in this case, a user had to be closer than 100 meters.

    In the next step, we decided to use the high accuracy mode of
    localization which might have required special settings in the device system if the localization accuracy changed. Using this information (technical launch of Intent) will open system dialogue which will allow it to automatically change the localization accuracy.

    It is worth remembering that the highest accuracy depends on GPS signals which mean it works best outside. The localization process can take more time when the signal is distracted. In this case, the system will send information (Exception) to the app which will fix the issue (Intent).

    Quality assurance

    Manual testing

    Procedure was carried out following the list of the most important functionalities. Testers from iteo and InPost went through each point before releasing subsequent versions of the application.

    There were also manual field tests at the Parcel Lockers.

    Reviews

    A consistently reliable partner, Iteo is a strong company who delivers skillful products. We haven’t experienced a single problem from their side with the timeline or scope. Their quick reaction time has been a critical strength we’ve highly valued.
    Works without any problems. Delivers features that make using InPost services as simple as it can be. One of the most useful apps on my phone.
    Awesome app This app is really great, especially for someone who orders lots of packages, like me. It’s very convenient to open boxes with just one button.
    It’s great! At this point all features work extra! I highly recommend! I use a lot, I was not disappointed!!!
    This app makes my life easier It’s really useful since it sends you notifications about your parcel so you don’t have to check your e-mail all the time.
    I really love the graphics, it’s cute and adorable! The app is fast, tracks everything on time, all updates are quickly visible in the system, and the delivery is also fast and reliable. Great user experience overall!

    Outcome

    The result is a simple, intuitive and modern mobile application for Android and iOS.

    InPost application won main prize at Mobile Trends Awards and became the app of the year 2019. It was recognized in the ‘Service’ category also as no 1. The company repeated its success in 2020 as well, winning the main award, 1st place in the ‘Service’ category, and 2nd place in users’ voting.

    The app has now over 5M downloads with daily dynamic increase due to huge demand for indirect goods delivery and collection. All versions of the application remained on first positions in Polish Google and Apple stores for a long time.

    Check the app

    More projects

    ]]>
    Rossmann https://iteo.com/projects/rossmann/ Thu, 13 Jan 2022 11:17:39 +0000 https://career.iteo.com/?post_type=projects&p=4416

    Rossmann

    Dashboard for clients who love a combined on-line & off-line shopping experience.
    image

    Details

    • Scope Android and iOS development, backend development
    • Innovation Motion Layout, Glide library, a two-step cache mechanism, animations based on users’ actions
    • Technologies Android: Kotlin, MVVM, RxJava, Retrofit, Dagger, Jetpack

      iOS: Obj-C, AFNetworking, Realm

      Backend: ASP.NET Core, MSSQL, Docker, Redis, MongoDB, TeamCity
    • Business sector Retail
    • Model of collaboration We worked on the Dashboard according to the fixed price model managing our own tasks within the limits of the defined scope
    • Team 2 x iOS developers
      3 x Android developers
      6 x backend developers
      2 x QA experts
      1 x PM

    A functional, pleasant, widely used iOS and Android application for a vital boost in both online and offline shopping.

    Timeline

  • 2019
    October

    start of the collaboration

    November

    beginning of development

    December

    last minute adjustments

  • 2020
    January

    testing and project release

  • Project’s highlights

    Useful everyday digital application supporting clients in convenient shopping, whether they visit the store offline or online. Also, a functional management tool for Rossmann’s employees providing them with an option to personalize the offer according to particular customers’ needs.

    image
    image

    Business needs & goals

    The company needed us once again. This time, along with creating the new Rossmann Club mobile application, there was a need of building a new version of the app’s home screen (Dashboard) as well as a set of dedicated cards.

    The goal was to make the app’s Dashboard visually appealing, easy, and convenient to use, allowing a smooth transition between two of the applied modes: At home and In store. Every mode needed to have its own looks and prioritize different functionalities.

    Additional task was to personalize the app’s view depending on the parameters assigned to a target user. The views had to be compatible with both iOS and Android systems and available for all the users – whether logged in or not.

    It was also necessary to design a new CMS module which would allow managing the Dashboard and cards according to the business’s requirements.

    Functionality

    Dashboard’s main screen greets the users every time they open the app. It consists of a few fixed elements:

    • An editable greeting with a @name parameter

    • Switching between the modes

    • Menu at the bottom of the screen redirecting
      to the main Dashboard, Basket, Shopping list,
      products’ catalogue, and Profile.

    Introducing the In store mode is one of the main alterations in the
    new app’s looks and functionality. It allows us to use the basic functions while offline shopping:

    • Current store location or the address of the store that was manually set up by the user as the one of interest

    • All the available coupons.

    • Rossmann card with the barcode and additional
      information: number of points gathered from Rossmann Club and potential information about Rossnę! discounts.

    • Recommended products.

    The content and order of cards on the dashboard is moderated by a dedicated CMS module created in the Angular technology, version 8. It allows a quick preview of the cards’ planogram for the whole month, copying, editing and removing them smoothly, as well as adding new ones, adjusting a target group, timeline, graphics, details, and preview.

    image

    Innovation

    Thanks to using streams, we were able to decide which card should be loaded with additional data.

    First, we download the list of texts for the cards with a single request and they are displayed. The cards have many different data: from graphics to the list of products. Other requests for details are queued and sorted depending on which elements of the list are visible. In the end, the data is joined to a current card’s list. It keeps the list fluent, appears immediately, and the users always see the data of the cards they are presently looking at.

    Adaptational tiles’ arrangement with MotionLayout

    Products on the card can be displayed in many different arrangements on the 2:2 net – every arrangement is a separate scene and transformation between the scenes is launched in the form of animation. It allows a fluent change of deploying the graphics.

    Using a Glide library to adjust all the pictures – even the large ones are not a problem.

    There can be many cards on the list and their graphics usually take up the whole card. Additionally, a graphic can be a static picture or a gif. They have to be stored in the memory to avoid downloading them every time anew.

    From time to time, there’s also a need for a thumbnail or an alternative graphic. What responds to all of these needs is a Glide
    library – and we squeezed it till the last drop!

    To provide a user with immediate data, we applied a two-step cache mechanism.

    Data which won’t change their value, e.g. graphics, are saved in the read-only memory of the app. If a graphic is repeated, it’s not
    processed from the internet once again but loaded directly from the storage. Data that can be changed are more difficult to store.

    The solution is caching them in the RAM of the device. A user is always provided with valid data within the limits of a single session
    with the app. After launching it once more, data is updated.

    The speed of performance is not the only thing required by the users – the app should also be smooth.

    We provided both by an animation based on a user’s actions. We’ve decided to animate the scrolling of the list. Thanks to the dynamic cards’ sliding in regard to the speed of the move, a user gets an impression that the tiles are floating and bouncing off the edge which gives a natural visual response. Applying the physics was extremely important for the most natural floating behaviour.

    image

    Challenges & solutions

    The biggest challenge was coordinating our tasks with Rossmann’s development works.

    We operated simultaneously in two different teams and had to clip it all together in a quite short period of time. Although we created only a small piece of the whole mobile app, it was highly interrelated with
    Rossmann’s development process and in result difficult to deploy. Even though it affected the backend, too, it was much easier to implement thanks to the applied microservice architecture

    Quality assurance

    The quality assurance process consisted of manual tests applied for:

    • CMS performance on different web browsers
    • Mobile app performance on iOS and Android system-based devices

    Functional tests were based on the guidelines provided by the client and information acquired during the team interview. We also performed exploratory tests, retests, and regression tests on different internet browsers and mobile devices’ system versions. The acceptance tests were applied by the Client.

    Outcome

    The application has more than 10M downloads on Google Play and is used everyday for both offline and online shopping, making the process easier and more convenient. It works flawlessly on Android and iOS based devices and a dedicated CMS allows a seamless Dashboard and cards management, targeting a client’s needs and following the company’s requirements.

    ]]>
    Changi Singapore https://iteo.com/projects/changi-singapore/ Mon, 04 Jul 2022 09:02:09 +0000 https://iteo.com/?post_type=projects&p=13214

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    image

    UX workshops

    Changi Recommends

    We started with product, analytical and audit workshops to establish our Client’s priorities.

    After completing the design (UX, UI), we’ve launched the process of the app development. In the first iteration we’ve focused only on the e-commerce part of the “super app”. Clients could create their accounts and buy whatever needed throughout the webview.

    Changi Mobile

    We conducted a thorough technological audit to establish further works.

    Workshops allowed us to decide upon:

    • application shell (architecture), servers, setting up of the environment’s infrastructure

    • mobile application shell (including deployment – testflight)

    • customer account creation functionality (initially, as an attempt to separate Changi Go from Changi Mobile)

    • purchase of a plan (sign up new lines) – as a basic version (only a number) – this would however include sim card delivery tracking, change of that process, cancellation (initially without add-ons and user validation in this stage)

    • payment and billing, downloading past bills (without purchasing add-ons)

    • data user history

    • account management, view and update MVNO account details

    This part involved much more backend work on our end, since we were responsible for connecting the new app to the system which required a perfectly working synchronization. The design, however, remained the same as in the previous version of the app.

    image

    Challenges & solutions

    The multitude of services and their previous manner of presentation was one of the most demanding challenges in the project.

    It was difficult to contain such a substantive amount of information on a phone’s screen to make it convenient and attractive for a user. That’s why we needed to work out an adequate approach and convince the Client that it’s the best way to go. 

     

    Changi Mobile required a solid backend which was supposed to be an engine for the whole project and one of our largest challenges.

    It needed to be written from scratch in a corrected architecture with a better handled integration.

     

    Another challenge we faced was cooperation with the Client’s backend team.

    The most problematic part were frequent changes related to the parts of the application we’ve already finished working on.

    UX & UI design

    After creating the second prototype (based on MVP), we designed the UX to track shipments as well as other side components of the application.

    We chose only the ones that fully represented our Client’s business value. Although at this point the structure of the app remained unchanged, we redesigned it according to the company’s brand book, including color consistency and the use of new fonts.

    image

    More projects

    ]]>
    GravelApp https://iteo.com/projects/gravelapp/ Wed, 13 Jul 2022 08:37:54 +0000 https://iteo.com/?post_type=projects&p=13713

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    image

    Challenges & solutions

    The multitude of services and their previous manner of presentation was one of the most demanding challenges in the project.

    It was difficult to contain such a substantive amount of information on a phone’s screen to make it convenient and attractive for a user. That’s why we needed to work out an adequate approach and convince the Client that it’s the best way to go. 

     

    Changi Mobile required a solid backend which was supposed to be an engine for the whole project and one of our largest challenges.

    It needed to be written from scratch in a corrected architecture with a better handled integration.

     

    Another challenge we faced was cooperation with the Client’s backend team.

    The most problematic part were frequent changes related to the parts of the application we’ve already finished working on.

    Quality Assurance

    We conducted:

    • manual web application tests

    • backend tests

    • mobile application tests

    • functional tests

    • integration tests

    • import tests

    • usability tests

    • performance tests

    • exploratory tests

    • smoke tests, retests

    • post-deployment tests

    The testing process went smoothly, with no delays, with releases between sprints. Tests were planned, analyzed, implemented and executed.

    Outcome

    Implemented digital solutions streamlined the company’s processes of orders and transport management.

    Now, the communication between the employees is smooth and the transport status is comprehensible for both sides. As a result, the company can serve more customers and be ahead of every obstacle that may occur during the order completion. 

     

    More projects

    ]]>
    Teatr Śląski https://iteo.com/projects/teatr-slaski/ Wed, 20 Apr 2022 11:25:34 +0000 https://iteo.com/?post_type=projects&p=10185

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    Innovation

    Remote Parcel Locker opening

    By allowing the users to collect their packages more seamlessly and quickly, InPost can deliver even more parcels every day!

    The functionality has been shared with the app’s version 2 release. The process of parcel collection needed to be fully intuitive and similar in both InPost mobile app and Parcel Lockers.

    The process of remote parcel locker opening is designed precisely not to interrupt the Client’s system.

    The functionality was highly praised by the users, contributing to their everyday convenience.

    Multilocker

    Effective optimization of the process of picking up the parcels from lockers.

    The solution resulted in a larger number of free lockers for other clients that made an order using the InPost services. Usually, when the lockers were overstuffed, the courier had to park in front of the Parcel Locker and it took a couple of hours to hand the packages over to the customers.

    With MultiLocker, the effectiveness of the whole system grows, as the delivery person can put a couple of packages ordered by one person in a single locker.

    Labelfree parcel posting

    Posting parcels using the InPost app is the first service of this kind available on the market. This functionality has been released with the new app’s 3.0.0 version.

    The new feature’s goal was to maximally facilitate the process of posting the packages:

    • Possibility to post parcels directly from the InPost Mobile app
    • Sending the parcels 24/7 not needing to print or stick the label
    • Convenient posting process without queues
    • BLIK payment option
    • Broadening the option of payment and implementing new functionalities for the posting process in the app in the future
    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    Challenges & solutions

    The multitude of services and their previous manner of presentation was one of the most demanding challenges in the project.

    It was difficult to contain such a substantive amount of information on a phone’s screen to make it convenient and attractive for a user. That’s why we needed to work out an adequate approach and convince the Client that it’s the best way to go. 

     

    Changi Mobile required a solid backend which was supposed to be an engine for the whole project and one of our largest challenges.

    It needed to be written from scratch in a corrected architecture with a better handled integration.

     

    Another challenge we faced was cooperation with the Client’s backend team.

    The most problematic part were frequent changes related to the parts of the application we’ve already finished working on.

    UX & UI design

    After creating the second prototype (based on MVP), we designed the UX to track shipments as well as other side components of the application.

    We chose only the ones that fully represented our Client’s business value. Although at this point the structure of the app remained unchanged, we redesigned it according to the company’s brand book, including color consistency and the use of new fonts.

    image

    Outcome

    Implemented digital solutions streamlined the company’s processes of orders and transport management.

    Now, the communication between the employees is smooth and the transport status is comprehensible for both sides. As a result, the company can serve more customers and be ahead of every obstacle that may occur during the order completion. 

     

    More projects

    ]]>
    Wage https://iteo.com/projects/wage/ Tue, 01 Feb 2022 11:21:10 +0000 https://newsite.iteo.com/?post_type=projects&p=6689

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    image

    Innovation

    Remote Parcel Locker opening

    By allowing the users to collect their packages more seamlessly and quickly, InPost can deliver even more parcels every day!

    The functionality has been shared with the app’s version 2 release. The process of parcel collection needed to be fully intuitive and similar in both InPost mobile app and Parcel Lockers.

    The process of remote parcel locker opening is designed precisely not to interrupt the Client’s system.

    The functionality was highly praised by the users, contributing to their everyday convenience.

    Multilocker

    Effective optimization of the process of picking up the parcels from lockers.

    The solution resulted in a larger number of free lockers for other clients that made an order using the InPost services. Usually, when the lockers were overstuffed, the courier had to park in front of the Parcel Locker and it took a couple of hours to hand the packages over to the customers.

    With MultiLocker, the effectiveness of the whole system grows, as the delivery person can put a couple of packages ordered by one person in a single locker.

    Labelfree parcel posting

    Posting parcels using the InPost app is the first service of this kind available on the market. This functionality has been released with the new app’s 3.0.0 version.

    The new feature’s goal was to maximally facilitate the process of posting the packages:

    • Possibility to post parcels directly from the InPost Mobile app
    • Sending the parcels 24/7 not needing to print or stick the label
    • Convenient posting process without queues
    • BLIK payment option
    • Broadening the option of payment and implementing new functionalities for the posting process in the app in the future
    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    MVP

    The next step was creating an MVP – Minimal Viable Product

    It included basic, most essential features that needed to be developed in the future.

    UX & UI design

    After creating the second prototype (based on MVP), we designed the UX to track shipments as well as other side components of the application.

    We chose only the ones that fully represented our Client’s business value. Although at this point the structure of the app remained unchanged, we redesigned it according to the company’s brand book, including color consistency and the use of new fonts.

    image
    image

    Quality Assurance

    Testing was based on the Wage’s user stories and performed on mobile, iOS and Android, as well as web applications.

    • Functional tests were a basis for verifying if all the functions work properly, and if the software corresponds with the defined and expected users’ needs.

    • Exploration testing helped us find other bugs and add these cases to the regression tests.

    • Regression tests allowed us to verify if the previously working functionalities are still valid after implemented alterations.

    • API tests with Insomnia. We applied a series of requests and tested all the endpoints with various combinations of data sets.

    image

    Reviews

    iteo offered creativity and strong project management. They delivered each phase of the project on time and within budget.

    Outcome

    Implemented digital solutions streamlined the company’s processes of orders and transport management.

    Now, the communication between the employees is smooth and the transport status is comprehensible for both sides. As a result, the company can serve more customers and be ahead of every obstacle that may occur during the order completion. 

     

    More projects

    ]]>
    WalletPA https://iteo.com/projects/walletpa/ Tue, 31 May 2022 08:11:25 +0000 https://iteo.com/?post_type=projects&p=10192

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    Proof of Concept

    The scope of the proof of concept contained:

    • Fetching user’s bank transactions through the use of Plaid API (with the Open Banking protocol under the hood)

    • Displaying them in our tool

    • Grouping them based on predefined settings:

      – minimum confidence level for similarity

      – recursion tolerance window

      – other factors that help create/reject a group of transactions

    • Aggregation of groups and splitting them in two types, based on their reliability

    • Discussion and further actions in the context of monitoring and alerting transaction groups chosen by the users (with their setup)

    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    Challenges & solutions

    The multitude of services and their previous manner of presentation was one of the most demanding challenges in the project.

    It was difficult to contain such a substantive amount of information on a phone’s screen to make it convenient and attractive for a user. That’s why we needed to work out an adequate approach and convince the Client that it’s the best way to go. 

     

    Changi Mobile required a solid backend which was supposed to be an engine for the whole project and one of our largest challenges.

    It needed to be written from scratch in a corrected architecture with a better handled integration.

     

    Another challenge we faced was cooperation with the Client’s backend team.

    The most problematic part were frequent changes related to the parts of the application we’ve already finished working on.

    UX & UI design

    After creating the second prototype (based on MVP), we designed the UX to track shipments as well as other side components of the application.

    We chose only the ones that fully represented our Client’s business value. Although at this point the structure of the app remained unchanged, we redesigned it according to the company’s brand book, including color consistency and the use of new fonts.

    Outcome

    Implemented digital solutions streamlined the company’s processes of orders and transport management.

    Now, the communication between the employees is smooth and the transport status is comprehensible for both sides. As a result, the company can serve more customers and be ahead of every obstacle that may occur during the order completion. 

     

    More projects

    ]]>
    Split https://iteo.com/projects/split/ Tue, 01 Feb 2022 12:19:17 +0000 https://newsite.iteo.com/?post_type=projects&p=6712

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Functionalities

    The solution consists of Chrome and Firefox extensions, as well as an iOS application.

    For shoppers

    Customers can earn cashback automatically as they shop if they add the Split extension into their browser. It only takes two seconds and is extremely easy. If cashback is available, the extension will get it without the need of additional clicking, viewing popups, or any other effort. If a user shares a link with friends or family, they both earn cashbacks after a successful purchase.

    For influencers

    Social media influencers can recommend products to their followers. If they make a purchase, they both share the commission. They can choose from thousands of brands and online retailers, generating revenues from current or even older posts. The users get real time notifications about which links are being clicked, so they can verify their followers’ needs and likes. What’s more, even if links are clicked from one device and an item is bought from another, they still get paid. The influencers can use their own domain for affiliate links, too. Additionally, they get a free SplitPage they can link on their profile and use as a shoppable gallery. To use all these options, they just need to sign up and install Split’s apps or extensions on all used devices. Then, it’s only a matter of creating links and sharing them with their audience on a blog or social media. When followers buy a recommended item, the commission is equally shared.

    Admin panel

    The client can manage the application keeping the offer proposal, content, and statements evergreen. Admins can easily make immediately distributed changes without involving the technical team. The whole product management is thus convenient and flexible.
    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    MVP

    The next step was creating an MVP – Minimal Viable Product

    It included basic, most essential features that needed to be developed in the future.

    UX & UI design

    After creating the second prototype (based on MVP), we designed the UX to track shipments as well as other side components of the application.

    We chose only the ones that fully represented our Client’s business value. Although at this point the structure of the app remained unchanged, we redesigned it according to the company’s brand book, including color consistency and the use of new fonts.

    image

    Challenges we faced

    Transition between versions 1 and 2 of the InPost app included app stores updates.

    Downloading a new version of the app from the store is connected with reading the HTML code. If an app store introduces even a small
    change, the app’s functionalities may stop working and the level of
    security may drop.

    To avoid the risk, we decided to use API needing to implement some
    adjustments on the backend side. Version 3 of the app was released in 2020 and introduced InPost Mobile to Huawei App Gallery.

    Problems with API required looking for a better solution. We found it developing the version 2 of the app.

    In the app’s first version, API has been based on the mocks which simulate the target functionality. After the development, it became clear that it required rebuilding.

    We solved it differently in the version 2 of the app. API was ready before the functionalities were made or during development. This way we were able to avoid time delays in the project.

    Secure process of verification.

    We had to minimise the risk of handing over the parcel to a wrong user.

    When a user wants to collect a package remotely, the app sends a request with parcel’s number, pickup code and device location (within a certain range) to the system. If the verification is successful, the session opens up, and if not, the session is rejected.

    Length of time for each step of the locker opening process.

    The solution suggested by InPost required a demanding process of programming. We had to face all the potential difficulties it came with.

    First, we had to calculate the time for each step in milliseconds instead of using time frames. This way the app receives the times, verifies and converts them to the local time, and then passes them between classes that are responsible for locker opening.

    Now, the time spent on the screen is added to the current hour. If the locker opening request is confirmed by the app, the next actions are taken by the Parcel Locker.

    Each machine has its own computer connected to the InPost system being able to take care of each step and properly send the data.

    Solutions we offered

    Avoiding client’s system overload.

    Firstly, remote Parcel Locker opening was based on sending requests to ask the API about the status of the locker. But it came with a risk.

    The requests we sent every second so the system would make sure that the locker door is open. But this solution was highly problematic, especially during so-called “peak” moments, e.g. during holidays when the demand for package delivery rapidly grows. Too many requests per second could cause an overload of the InPost systems bugging or stopping them completely.

    We’ve decided that the request should be blocked by InPost until the locker’s status changes (possible options being “open”, “fail” or “timeout”). The whole process is very quick but it requires extending HTTP timeouts. The default time for the whole app is 10 seconds. In this case, we needed to create a separate API configuration so the timeout for one request can take 30 seconds. It was the easiest solution to avoid the system’s overload.

    Closing the parcel locker door.

    If a package is taken out of the locker and the door are being locked, a user can click the button confirming the operation – then the app sends a request to InPost’s API with a message that the doors are locked. But what if they aren’t?

    The fix was quite simple. After clicking the “Parcel taken out” button, the app shows a screen with the “Door closed” announcement. It doesn’t send an API request and goes straight to the summary. This way, a user isn’t blocked on one screen – especially when the door is damaged and can’t be closed.

    At this point, after summarizing the process, a user has an option to send a complaint, for example when the package has defects.

    Reviews

    iteo offered creativity and strong project management. They delivered each phase of the project on time and within budget.

    Outcome

    The result is a simple, intuitive and modern mobile application for Android and iOS.

    InPost application won main prize at Mobile Trends Awards and became the app of the year 2019. It was recognized in the ‘Service’ category also as no 1. The company repeated its success in 2020 as well, winning the main award, 1st place in the ‘Service’ category, and 2nd place in users’ voting.

    The app has now over 5M downloads with daily dynamic increase due to huge demand for indirect goods delivery and collection. All versions of the application remained on first positions in Polish Google and Apple stores for a long time.

    More projects

    ]]>
    SKEO https://iteo.com/projects/skeo/ Thu, 13 Jan 2022 11:17:40 +0000 https://career.iteo.com/?post_type=projects&p=3483

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Our ultimate goal is to deliver cutting edge technology that not only educates skiers on their technique but also inspires them to level up if they’re eager to improve. Many skiers hit the slopes for fun but don’t fully understand what they’re doing or why especially when it comes to body position and safety… SKEO aims to change that by democratizing ski assessment and instruction for all.

    Functionality

    Universal Alpine Ranking (UAR)

    Developed by Bode Miller is a scoring ranking with a baseline metric to evaluate the user’s performance based on
    a personal survey and data acquired during actual skiing.

    Comprehensive run stats

    Allow users to track their individual speed, turns, pace, vertical, mileage, and G-force with every slide.

    Quest challenges

    For successful development, quests are applied to the elements that need to be improved and are adjusted individually to the user’s abilities.

    3D avatar

    The app was integrated with a visual depiction of the skier’s position based on the gathered movement analysis and helping provide professional feedback.

    Community engagement

    It lets the users follow each other within the app depending on their location and personal privacy preferences. They can compare the results and challenge one another to boost their overall performance.

    Body positioning

    It’s a feature available for skiers who train with sensor hardware. It uses a mountain simulator to record ski tracks and provide valuable feedback on edge angle and body positioning. The information is shown both in a form of data and 3D avatar video. It’s great when it comes to improving one’s speed and maximally controlling the position of the body.

    image

    Technologies

    Flutter

    Developed by Bode Miller is a scoring ranking with a baseline metric to evaluate the user’s performance based on a personal survey and data acquired during actual skiing.

    Native libraries – Swift & Kotlin

    Swift allowed us to provide robust performance, seamless synchronization, and appealing design. The language is known for its speed and clean, safe code allowing us to create a spot-on product for iPhones.

    Kotlin was our choice for Android. We used it for its concise code, safety, productivity, compatibility, and easy maintenance.

    Innovation

    Remote Parcel Locker opening

    By allowing the users to collect their packages more seamlessly and quickly, InPost can deliver even more parcels every day!

    The functionality has been shared with the app’s version 2 release. The process of parcel collection needed to be fully intuitive and similar in both InPost mobile app and Parcel Lockers.

    The process of remote parcel locker opening is designed precisely not to interrupt the Client’s system.

    The functionality was highly praised by the users, contributing to their everyday convenience.

    Multilocker

    Effective optimization of the process of picking up the parcels from lockers.

    The solution resulted in a larger number of free lockers for other clients that made an order using the InPost services. Usually, when the lockers were overstuffed, the courier had to park in front of the Parcel Locker and it took a couple of hours to hand the packages over to the customers.

    With MultiLocker, the effectiveness of the whole system grows, as the delivery person can put a couple of packages ordered by one person in a single locker.

    Labelfree parcel posting

    Posting parcels using the InPost app is the first service of this kind available on the market. This functionality has been released with the new app’s 3.0.0 version.

    The new feature’s goal was to maximally facilitate the process of posting the packages:

    • Possibility to post parcels directly from the InPost Mobile app
    • Sending the parcels 24/7 not needing to print or stick the label
    • Convenient posting process without queues
    • BLIK payment option
    • Broadening the option of payment and implementing new functionalities for the posting process in the app in the future

    Challenges & solutions

    Sensors development

    We developed dedicated sensors that can be connected to the SKEO app to provide better and more accurate analysis and UAR measurements. A very important aspect of this project was to keep modular, layered architecture, respecting the technology stack needed on each layer.

    The project is built of modules written in native mobile languages to provide native access to low-level system interfaces. Application also integrates Unity modules and Algorithms written natively in C++.

    The kit includes:

    • 3 SKEO sensors
    • 2 adhesive ski mounts
    • 1 chest harness

    Complexity and background operations

    The app supports customers using tablets which requires responsive app views behaviour. Depending on the device size, we automatically scale views to the specific screen size or, in special cases, rearrange view elements to make them more user friendly.

    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    mockup
    image
    mockup
    image
    mockup
    image

    Challenges we faced

    Transition between versions 1 and 2 of the InPost app included app stores updates.

    Downloading a new version of the app from the store is connected with reading the HTML code. If an app store introduces even a small
    change, the app’s functionalities may stop working and the level of
    security may drop.

    To avoid the risk, we decided to use API needing to implement some
    adjustments on the backend side. Version 3 of the app was released in 2020 and introduced InPost Mobile to Huawei App Gallery.

    Problems with API required looking for a better solution. We found it developing the version 2 of the app.

    In the app’s first version, API has been based on the mocks which simulate the target functionality. After the development, it became clear that it required rebuilding.

    We solved it differently in the version 2 of the app. API was ready before the functionalities were made or during development. This way we were able to avoid time delays in the project.

    Secure process of verification.

    We had to minimise the risk of handing over the parcel to a wrong user.

    When a user wants to collect a package remotely, the app sends a request with parcel’s number, pickup code and device location (within a certain range) to the system. If the verification is successful, the session opens up, and if not, the session is rejected.

    Length of time for each step of the locker opening process.

    The solution suggested by InPost required a demanding process of programming. We had to face all the potential difficulties it came with.

    First, we had to calculate the time for each step in milliseconds instead of using time frames. This way the app receives the times, verifies and converts them to the local time, and then passes them between classes that are responsible for locker opening.

    Now, the time spent on the screen is added to the current hour. If the locker opening request is confirmed by the app, the next actions are taken by the Parcel Locker.

    Each machine has its own computer connected to the InPost system being able to take care of each step and properly send the data.

    Reviews

    Love the potential and data that it tracks for each run. Eager to use the app that seems like it will keep me motivated. Looking forward to seeing what tips it offers!
    It’s cool to SEE HOW YOU SKI! We had a lot of fun exploring the amazing features the SKEO app provides. We can’t wait to spend more days on snow with the cookies!
    What a fun and invigorating new tool to hone in the turns. I found myself trying harder just knowing I was monitoring myself!

    Solutions we offered

    Avoiding client’s system overload.

    Firstly, remote Parcel Locker opening was based on sending requests to ask the API about the status of the locker. But it came with a risk.

    The requests we sent every second so the system would make sure that the locker door is open. But this solution was highly problematic, especially during so-called “peak” moments, e.g. during holidays when the demand for package delivery rapidly grows. Too many requests per second could cause an overload of the InPost systems bugging or stopping them completely.

    We’ve decided that the request should be blocked by InPost until the locker’s status changes (possible options being “open”, “fail” or “timeout”). The whole process is very quick but it requires extending HTTP timeouts. The default time for the whole app is 10 seconds. In this case, we needed to create a separate API configuration so the timeout for one request can take 30 seconds. It was the easiest solution to avoid the system’s overload.

    Closing the parcel locker door.

    If a package is taken out of the locker and the door are being locked, a user can click the button confirming the operation – then the app sends a request to InPost’s API with a message that the doors are locked. But what if they aren’t?

    The fix was quite simple. After clicking the “Parcel taken out” button, the app shows a screen with the “Door closed” announcement. It doesn’t send an API request and goes straight to the summary. This way, a user isn’t blocked on one screen – especially when the door is damaged and can’t be closed.

    At this point, after summarizing the process, a user has an option to send a complaint, for example when the package has defects.

    Check the app

    More projects

    ]]>
    ITAKA https://iteo.com/projects/itaka/ Thu, 13 Jan 2022 11:17:38 +0000 https://career.iteo.com/?post_type=projects&p=4548

    InPost

    Reinventing logistics with a contact-free delivery.
    image

    Details

    • Scope Product workshops, UX/UI design, native mobile apps development, frontend, QA
    • Timeframes Ongoing since 2017
    • Innovation Remote parcel locker opening and MultiLocker
    • Technologies Swift, Kotlin, Angular
    • Business sector Logistics
    • iteo Team 3 x Android developers
      2 x iOS developers
      3 x QA specialists
      1 x Scrum Master
      1 x UI designer
      1 x UX designer

    Substituting text messages with an appealing, likable app, we created a new, effective channel of communication between InPost and their clients.

    Timeline

  • 2017
    June

    Beginning of collaboration

  • 2018
    June

    Kick-off of InPost Mobile project

  • 2019
    April

    Version 1 release

    July

    The beginning of work on version 2

    November

    Version 2 release

  • 2020
    June

    Version 2 release

    August

    Additional app motive “dark mode”

    November&December

    Version 3 release, Labelfree posting, InPost pointmaps, Huawei AppGallery

  • 2021
    June

    A banner with customer service information

    August

    Redirecting a parcel to a WebView Parcel Locker

  • Project’s highlights

    InPost application creates a true revolution and innovation on the logistics market, allowing a 24/7, quick, convenient, and contactless parcel collection and labelless posting, being a safe alternative for other companies’ services.

    image
    image

    Business needs & goals!

    Business needs

    One of the main business needs was to accelerate the process of package pickup. Especially during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Remote locker opening can reduce the lines in front of Parcel Lockers and also it leaves out the verification process (from the perspective of the user, of course) which requires entering or scanning a barcode. during holiday seasons, when the number of orders and the demand for lockers is much higher.

    Business goals

    Another important goal was to entirely give up text messages with parcel pickup codes.

    This solution was highly ineffective cost-wise (InPost was sending tens of millions text messages monthly!) and also was risky in terms of potential frauds.

    Technologies

    Two native apps, for Android and iOS with backend coded in Java.

    • Kotlin – for Android app, with support for Google Mobile Services (GMS) & Huawei Mobile Services (HMS)

    • Dagger – libraries included by the Kotlin framework (dependency injection)

    • RxJava – for asynchronous apps

    • Retrofit – for easier communication with API

    • Firebase – receiving push notifications and collecting analytical data

    • Swift – for an iOS app

    • SwiftLint – the most important libraries (partial automatization of code review)

    • Realm – easy to use databases

    • Firebase, Lottie – graphic animations

    • Hero – animations between views

    Innovation

    One of the key marketing features and a unique selling point of the developed web app is a custom affiliate system that allows Itaka’s international partners to offer their own facultative trips.

    Existing applications of affiliates were rebuilt under the umbrella of SeePlaces. Customers are redirected to sections branded by cooperating local partners without leaving Itaka’s environment.

    image

    Product Workshops

    Designing application began with Product Workshops

    Along with the Client, we thoroughly analyzed the project, established the highest priorities and the order of individual functionalities implementation.

    Workshops resulted in preparing the application’s prototype assessed internally by the InPost team.

    MVP

    The next step was creating an MVP – Minimal Viable Product

    It included basic, most essential features that needed to be developed in the future.

    Challenges we faced

    Transition between versions 1 and 2 of the InPost app included app stores updates.

    Downloading a new version of the app from the store is connected with reading the HTML code. If an app store introduces even a small
    change, the app’s functionalities may stop working and the level of
    security may drop.

    To avoid the risk, we decided to use API needing to implement some
    adjustments on the backend side. Version 3 of the app was released in 2020 and introduced InPost Mobile to Huawei App Gallery.

    Problems with API required looking for a better solution. We found it developing the version 2 of the app.

    In the app’s first version, API has been based on the mocks which simulate the target functionality. After the development, it became clear that it required rebuilding.

    We solved it differently in the version 2 of the app. API was ready before the functionalities were made or during development. This way we were able to avoid time delays in the project.

    Secure process of verification.

    We had to minimise the risk of handing over the parcel to a wrong user.

    When a user wants to collect a package remotely, the app sends a request with parcel’s number, pickup code and device location (within a certain range) to the system. If the verification is successful, the session opens up, and if not, the session is rejected.

    Length of time for each step of the locker opening process.

    The solution suggested by InPost required a demanding process of programming. We had to face all the potential difficulties it came with.

    First, we had to calculate the time for each step in milliseconds instead of using time frames. This way the app receives the times, verifies and converts them to the local time, and then passes them between classes that are responsible for locker opening.

    Now, the time spent on the screen is added to the current hour. If the locker opening request is confirmed by the app, the next actions are taken by the Parcel Locker.

    Each machine has its own computer connected to the InPost system being able to take care of each step and properly send the data.

    Customer’s review

    I’m glad I have a partner in iteo that is able to complete the project seamlessly from concept, through development, to product launch.

    More projects

    ]]>