How We’ve Adapted HIPAA Video to Meet the GDPR

In past few years we’ve seen more than a few failures to protect user data on part of the most renowned companies of the digital world. This just used to happen. With so many great things brought by innovation, privacy and ethical data policies seem to have taken a priority a bit lower than what was due.

With GDPR everything changed. General Data Protection Regulation is a legal framework that gives users much more control over their data trail. Having come into effect on May 25, 2018 in Europe, it offers more security in terms of personal information and obligates software companies to take special measures in order to protect user privacy.

The development of HIPAA video took place in times of many huge shifts in the world of software as well as the global stance on how personal data should be processed. WebRTC technology was quite raw at the time, and we were among the pioneers to harness it with HIPAA video by creating a fully viable digital product. Our team made sure HIPAA Video was adjusted for international health standards which also had to do with data privacy. However, GDPR had added some grounds we had to cover on additional basis.


SOFTWARE AND HEALTH

HIPAA Video is the latest web application for more accessible healthcare that now allows doctors and their patients to communicate by video calls. It’s a great option for post-treatment follow-ups and consultations that don’t require patients to be examined in person. In addition, it offers enhanced management dashboard both for the physician and client. This enables them to lead a textual exchange, file transfer and organize their interaction in a seamless fashion. Today, we are proud to say we were the technical team behind the project.

As the name suggests, HIPAA Video was initially designed to meet the Health Insurance Portability and Accountability Act and thus be officially allowed in medical practice by hospitals and individual doctors on US soil. When comparing HIPAA to GDPR, which replaced a European directive that dated back to 1995, the law of 2018 had a few more specifics that demand additional actions on part of the developer.


WHAT DID GDPR MEAN FOR US?

First and foremost, based in the US and processing all the data in North America, HIPAA Video did not fall under the regulations of the past. Now, GDPR obligates any company stationed in any part of the world to comply and enact a number of mechanisms for transparent data acquisition, processing as well as control on part of the client. Doesn’t matter where your HQ is, if you use the data of European citizens, you are accountable.

The definition of personal data in GDPR is any information regarding an individual that can explicitly or implicitly identify the person. This applies to the name, location data, online identifier and cues on genetic, mental, economic or cultural identity. It is quite broad, as technically even your IP address can be classified as personal. On top of that, our app deals with medicine. In accordance with HIPAA, we’ve already encrypted the confidential data that has to do with personal health by creating well-defined barriers between the administrators, practitioners and patients. Aside from the patients, medical doctors are an equally significant group of our clients, and so they also do avail of GDPR and the information regarding their medical practice is secured in due manner.

With GDPR the Terms of Service have to be more than explicit. The manner in which you are reaching out to obtain the agreement to these terms also has to be very clear and up in their face. You cannot present your user with a filled checkbox and allow them to seamlessly click through. HIPAA Video has to do with extremely sensitive data, and so we’ve ramped up our way of presenting the Terms of Service as well as getting a vivid and unambiguous agreement from the user. In cooperation with legal advisors and the team at HIPAA Video our UX/UI designers have come up with a written form of agreement much similar to that of registration in an actual hospital. This agreement is presented to the user and they manually sign it in order to continue through registration. In case the healthcare services are being distributed towards persons who are not of legal age, the modified version of the agreement is created for parental consent.

The accumulation of data should be limited to the purposes of the offered services without going beyond them. Data should also be gathered only within timespan the services are being distributed. For this reason, our technical specialists have implemented a number of stop functions that ensure HIPAA VIDEO is not gathering any data when it’s off and cannot be tapped onto by any third-parties to such ends.

Users are enabled to reach out to the company with inquiries on collected personal data. This includes written confirmation of the fact that personal data is being collected, the exact entities processing the data, location and intents of processing, categories of processed data, timeframe of data accumulation, instances of disclosure to third-parties (client-patient in our case) as well as confirmation of the source from which the data was obtained. This information is included into the terms of service to limit the amount of incoming queries, and, of course, we have retrofitted the web platform with automatic reply system that responds to these email inquiries.

Another thing users can do under GDPR is externally managing their accumulated data within the app they are using. First of all, it was a part of our job to make sure that users are able to export their accumulated data. We’ve included it as a separate option in the settings. Patients can download their personal data as a text report that is easy to get around. Continuing to another GDPR requirement that is transferring user data to another entity upon request from the user, this report generation form is modified for easy transfer of individual user data to another telehealth application or medical institution. Not to mention any doctor within the app, should the need arise. When speaking about the right to cease the accumulation of data, we’ve included a handle to enable a mode in which no data is stored within the app. However, such course is limiting towards the functionality as the cookies and local storages are enabling many convenient features of the app users are accustomed to. Last but not least, in lines with the Right to Erasure and Right to Be Forgotten, the user can permanently delete all of their data via the respective option in the settings.

When it comes to security of personal data, not much had changed in our project map as we’ve made extensive efforts to comply with HIPAA and European standards for medical secrecy. All user data storages and exchange are encrypted. We’ve used TSL, TDL and Role-based Authorization for the web app login which eliminate the possibilities of hacking. 

The whole construct is modular. For this reason, any breach with malicious intent would allow only a very limited field of view and low access within the scope of a singular module. Additionally, the admins get hold of a global log that triggers alerts in case of any suspicious activities. Thanks to the log module, all activities are clearly listed and instances of data breach can be officially reported in an obvious manner. Which is highly relevant as, with GDPR, cases of data loss have to be disclosed on a very short notice.

Aside from data theft, the new laws also obligate the creators of any digital product to protect user-data from damage and loss which can simply occur due to system malfunction or even wear and tear of hardware. Our team had implemented a sound technical solution that logs failures and locks down the system nodes that couldn’t perform. To revert any possible damage that can occur due to system failure, regular backups are in place to recover the data that can potentially be lost.

The right to request the correction of data on part of the user is utilized via the usual account editing in the personal settings that is not a novelty to any standard app as of today.

In the end, HIPAA Video turned out to be a powerful telehealth web application that is now redefining healthcare distribution and does its part to remove yet a few more roadblocks on the way to more accessible medical assistance. For our team it was a very positive learning experience and yet another accolade that we are truly proud of. 

As for the changes brought by GDPR, they have been long overdue in the new digital economy. The companies are wielding tremendous power that is only going to increase as the technology is improving dramatically. The upgraded set of regulations to protect user data had finally defined a rightful course of conduct in the industry and ultimately allowed users to have more faith in the upcoming innovative solutions. Overall, for us, adapting HIPAA Video to GDPR did not entail any dramatic shifts to our efforts.  As we’ve said, the app had originally covered the requirements to qualify for HIPAA regulations that were much similar to GDPR. We are already seeing that HIPAA Video is making a good progress, and we are really happy that it is equally adapted to help users in any part of the globe.

Author: Andrii Horiachko More

Our 3 Awesome Real Estate Apps to Make Your Life Easier

Managing real estate is not very easy, right? Whether it’s moving to a new place or curating multiple premises that you own, dealing with the nuances can be difficult, and we know this firsthand. Today, multiple startups have put it on themselves to improve things. We at Softermii are proud to have been playing our part in helping these companies and hopefully getting at least a few problems out of your hair. Here are some of the digital solutions we’ve created to do so:


Proper

Continuing to rent a place you like is only fine as long as everything is okay. But as soon as something’s going wrong and you need urgent repairs, the experience can rapidly go from “great” to a definite “no”. And the worst part is that it will take forever for you to badger the landlord to do something about it. Those who have rented a place at least once in their lifetime are sure to know it. More often than not the owner is just too busy to remember that you needed something. This is

 the exact issue Proper takes head-on.

Proper is a unique platform for tenants, landlords and housework contractors designed to resolve the problem of communication in case of any household incidents. Now, when anything happens in your place  (boiler gets broken, rodent invasion etc.), you can easily reach out to your landlord and tell him or her to do something about it. Which is to involve a third-party contractor right there in the app and resolve your issue rapidly.

The app possesses a very fluid workflow that fully caters to the needs of all three parties. Tenant photographs the problematic area and creates a request for the landlord to fix it. Afterwards, the landlord creates a job for the contractor. When the work is done and your place is back to normal, the contractor has the means to verify that everything is in order with the landlord and receive the due payment. This way we achieve a highly viable workflow for a quick resolution to any issues that inevitably arise in case with living quarters of any kind.

Overall, Proper packs immense value not only for the tenants but for the landlords themselves as this is an amazing medium they can use to take the level of their service to new heights and rise above their highly competitive environment.


Rently

The National Association of Realtors is the biggest trade association in the entire world accounting 1.50 million individuals involved and around 3 million of actual real estate agents active in US. The potential of the industry has never been questioned. So much that the realm of real estate had continuously gotten away with accumulating massive income without any need to modernize its workflows or evolve together with technology. However, the opportunities are lying in plain sight. It’s only a question of time that someone finds and uses them to get the upper hand. One of such cases was Rently.

For a property manager it is definitely not easy to show all of your potential clients around multiple locations scattered all over a huge city. Time is money, gas is certainly money as well, and so you need to decide how to arrange your schedule. This kind of a deal can get you booked for months and you know that your potential clients will surely find this highly inconvenient. Thus it’s your loss but not for any longer. With Rently you don’t need to visit the location to give your client a tour. The product team has devised a unique solution that revolutionizes the property business as we know it. It allows your clients to visit your places without supervision. As for our part, Softermii is behind the app that makes this whole idea possible.

Of course, there is a number of things that can go wrong in the kind of equation offered here, but Rently has everything covered with its unique approach when it comes to unsupervised showing process. It all starts in our app. The client gets onboard the app and requests access after finding a preferable site on the catalog. The manager is granting access and then the app is generating a unique entry code that is forwarded to the user. Obviously, it would have been much trouble to fit each individual apartment with any kind of digital entry process and replace the conventional door lock. For this reason, the team at Rently had created the Smart Lockbox which is what makes the concept so special. The uniquely generated code issued by the app goes into a neat little access device fitted at building entrance. If the code is correct, it gives the physical key to enter the right room. That’s it, you can give yourself a tour and explore the place as you like to. When you’re done, just put the key back into the Smart Lockbox and you’re all set.

As for the Property Manager, the risks that go with letting a stranger in are covered by confirming the payment details of the potential client prior to them visiting the location. Generally, Rently is optimizing the property market as you know it all the while saving you a tremendous amount of staffing costs.


RadPad

More often than anyone anywhere, Americans get their stuff and move to a new place. Over 24% of US citizens change residence every 5 years. Exactly the reason why so many innovators are competing to create a better experience and win the client base. One of the best out there is RadPad. Its main focus is offering the most informative property listing by the means of showing you as much high-definition imagery as possible. The platform is even going as far as individually contacting the landlords to improve their listings by adding more images.

RadPad allows renters to look for a new apartment, home or condo and avail of a transparent interaction with the property owners. When choosing a new place of residence, they get access to at least three images for each potential place as well as the optional video-tour. The geo-location choice capabilities are all there, allowing the user to choose the most preferable spot in regards to logistics. As for the latter, clients can use DriveTime, an internal calculator which lets you see how much time it would take for you to get to work by walking, driving a bike, your car or multiple types of available public transport. The users may even stumble across a neighborhood they are fond of and peruse the dynamic listings in real time as they move. The messenger functionality is in order and clients can talk to the renters to schedule on-premise meetings. The messages are marked as read after they are viewed. Each renter goes through an identity check and has to confirm their phone and state-issued photo ID as well as to renew property listings at least once in two weeks. One of the most essential features the tenant can use is paying the rent right there in RadPad. In-app payments are available with any major debit or credit card ever since 2014.

Right now, RadPad is riding the tide as one of the major residential renting services on US soil. Having started in LA, today, it has conquered such major cities as Dallas, Chicago, Miami, New York City, San Diego, San Francisco, Santa Monica and Washington DC.

In the U.S. alone real estate is the largest asset class when it comes to investment, worth $40 trillion and leaving fixed income, healthcare and equity far behind. Real estate loans are the largest in their class as well with around $12 trillion that go for mortgages which is exponentially higher than the overall citizen credit card debt of $882 billion. Each year new real estate debt is issued in the amount of $1.6 trillion. Only $500 billion of this debt is commercial real estate while $1.1 trillion is residential. So you could say it’s profitable.

It’s about time that real estate had started to take advantage of the explosive innovation that’s becoming a part of our lives with each day. There is still much room to implement information technology when it comes to such areas of real estate as urban planning as well as data-driven insights. Today, agents can offer highly personalized opportunities depending on clients’ needs. The same goes for the ways real estate projects are founded and managed. Add to that the immersive VR experiences, automated valuation models and much more. The commercial real estate is estimated to hit 1 trillion by 2030. This is office buildings, malls, motels, supermarkets, industrial property. The technological coverage has largely been untapped with very few exceptions. Right now, concealing a massive undercurrent of ample rewards to the innovators who will rise to the challenge of reshaping it for better in the coming years.

Each one of the projects is yet another milestone in the technical revolution sweeping the world. We are happy to have been a part of these amazing initiatives that help millions of people today. Make sure to check the full list of our past projects, as well as some of the client reviews we’ve obtained over the years.

Author: Andrii Horiachko More

How to Integrate an Ecommerce Website with Logistics Service

A question, if you will. Would you like to get more sales? More sales is more money, right? So, why wouldn’t you?

Your next marketing campaign floods your website with a heavy amount of traffic. The site doesn’t fall under the pressure but what about the order fulfillment? There is only so much supply you can dispatch on your own. Before you know it, you need more goods, more people, more everything. And since you cannot meet the demand, clients don’t get their stuff. They start getting angry, decimating you with negative feedback about their awful customer experience. This way you end up paying the ultimate cost for the short-term success. The trick is that you can only technically wear multiple hats. Many big companies do, in fact, and many do poorly.

Are you really ready to manage an extra-large warehouse as well as the truck fleet? By all means, you do need to delegate the fulfillment to 3PL service providers. Now is the time of sharing economy. According to a case study by Logistics Management, the TMS system development is on the rise, while food restaurant industry is another perfect example of how one does much better by delegating delivery on smaller scale.

There is a myriad of technicalities involved into establishing this kind of partnership. One thing we will tackle in this article is merging your online platform and that of your business associates.

We ourselves have had the chance to work with Hermes GmbH and Anton Röhr Logistic Group, helping them with API integrations into web retailers and data exchange. In one case we’ve had to integrate ecommerce website with an inventory management system called FLEXE as well as the case with ShipStation to aggregate orders obtained at multiple marketplaces including AliExpress, Amazon and Ebay. Ecommerce inventory management is a whole different beast from the supply chain management. One of the particular things we also excel at is custom label creation for packages via PDF conversion.

We find the above online shopping logistics services to be superior in may respects. However, this guide applies to any solutions you would use. Without further adieu, here are some of the best practices on how to integrate an ecommerce website with logistics web API.


SEPARATING YOUR WEBSITE FROM THE API

Data exchange between the retailer website and the logistics partner is highly intricate. Information on payments, taxes, prices. All this info on ecommerce stock management may be sent via different methods including HTTP, WebServices, MQ/JMS etc. Whichever you’ll prefer, one major aspect to keep in mind is maintaining the website and the API isolated, so that the API cannot take down the website in case it crashes. The issue is especially sensitive with ecommerce, as the external calls are bound to the user input on the website itself. For example, sending out an update regarding inventory management for ecommerce website and fetching the changing information from it.

This is why you should fragment the data transfer and separate the parts that buyers deal with. Don’t execute via the action issued by the user but instead save it in the database. Create a scheduled process with a constant refresh rate that would periodically check the database and transfer the order data from within itself. When you try to integrate website with logistic service the given method also helps you save the resources that would otherwise be booked by waiting for the server responses when doing all this directly.


CACHING

Whenever possible, you should cache data from the external calls. This way you can bring down the dependency of both systems and the amount of real-time data exchange. For instance, you may create a scenario in which you utilize the local database cache to save inventory figures from the outbound system that manages orders. This way the configuration automatically determines whether there is actual need for out-coming interaction. Thanks to this kind of setup, you depend on locally cached data for the major portion of requests with minimized need to communicate with the external system.


USE OF CIRCUIT BREAKER

First thing your system has to do is stop sending requests to the API in case it has been identified as unavailable. Otherwise, the server will send multiple requests to reach the API. It will get no response from any and block all the available threads waiting for the response. In order to achieve this, you need the API to provide Webhooks, which we’ll discuss below. Otherwise, introduce a heartbeat routine that would run checks on the outbound server. All requests are sent only upon confirming the status and, in case the status appears to be offline, the website is simply fetching the cached data to the user.


USING WEBHOOKS

Aside from caching and in lines with reducing the data dependencies, Webhooks are the API responses that the API is courteously providing in order to save your website from having to do the troublesome checks on its own. The trick is that the third party e-commerce logistics product may or may not provide functionality to these ends.

Webhooks get calls via HTTP POSTs only when there is an update to the cached info and also confirm that the API is up and running. The main difference to the hear?beat routine, you’d have to run otherwise, is that the data exchange occurs when there is some stuff to refresh and not routinely. Webhooks deliver the data transfer that is nearly real-time and superior in most respects. However, in comparison to the heartbeat, there is no telling that the Webhook is keeping quiet due to a malfunction instead of simply having nothing new to say.

Additionally, Webhooks give you less control over the data intake volume which has to be additionally adjusted to be well-regulated.

There are no common denominators with Webhooks, and each API has its own miscellaneous approach to how they are designed. Bottom line, Webhook is supposed to have a timestamp, webhook_id if it was given by the client in the first place and type in case there are multiple types of Webhooks in the system.

You should refrain from sending an ID that needs to be figured out with an additional API request. Despite many popular social networks doing this, the practice is ill-advised.

With ecommerce, payment data and personal information, it is highly important that all the data is secure. For this reason, SSL and TLS encryption are in order. As for Webhooks, they too can be augmented to double-check whether the request is genuinely coming from the shop and not anywhere else. A great way to go about this is setting up a secret confirmation token that would verify the providence of the call.


CREATING TIMEOUTS

All transports and invocations that go externally should have time limitation. It’s best to use the shortest length for timeout. 5 Seconds at best. This way you don’t create pileups in the server threads. It just doesn’t infinitely wait for the response from the outbound API. Long timeouts lasting for, say, 1 minute will quickly deplete the pool of available threads, and new shoppers won’t be able to reach you. The documentation should help with the given adjustments.


CONSIDERATIONS TO CHOOSING A PRODUCT WITH GOOD API

Finally, in case you haven’t chosen the product or the company that you will merge with your website, remember to evaluate the quality of their API before making the final call. The best e-commerce logistics APIs are famed for good documentation, so this is the most telling sign.

Your app is supposed to ration the amount of data that is transferred in one go, as well as the frequency of these transfers.

Criteria search is also important as your API is supposed to include the search by parameters, one of the most important being the date modified. It helps in being a great point of reference after each sync with the website. This way we can find all the changes that have occurred.

Another valuable element to help you minimize the friction of e-commerce logistics integration is the sandbox environment. It’s quite difficult to test how your website operates with a third-party installed. The kind of environments you can come up with on your own, are laborious to set up and they might not satisfy the required criteria. While the sandbox won’t give you the chance to run tests with real banner ads, being able to use the turnkey environment of the API provider will greatly enhance the efforts of your QA team and make sure that no bugs make it into the final release.

Meanwhile, it becomes more and more common for companies and startups to dedicate top priority roles to APIs instead of trying to fill them on their own. API-driven development is the upcoming trend of 2018 and we are yet to see the most thoughtful 3rd party fusions.

We hope this guide has been helpful. Whether you’re building your e-commerce website from top to bottom or choosing to work with a solution that is pre-made to various degrees, this piece should give you the most essential ideas on the integration of your website with 3rd party API for ecommerce shipping and inventory management.

Author: Andrii Horiachko More

How to Create a Food Delivery App That Wins the Customer Base

Destination – food delivery. For many restaurants, food distribution network is an astounding chance to potentially double their profits. As much as it is the place for a startup leap to fame with unique innovative services. “How?” – you might ask. The key to hit the bull’s eye is in presentation. The right UX/UI design is the difference between hit and miss. For those wondering how to create a food delivery app to make it big, we share the following ideas our company has been using in a number of our successful projects.


In order to appeal to your clients, above all, you should offer the most convenient and pleasant looking user experience. Plus, on the technical side, you should build an app for food delivery that has:

- Great mobile adaptation

- Easy payment process

- Thought out rating system


First of all, before starting your very own food delivery app development, define where your app stands in the bigger picture. Are you a food business owner ready to enter the on-demand delivery? Or are you a delivery service looking to help the restaurants distribute their products? You should know that, overall, there are 3 variations of enterprises working in the same line of business:

  1. Apps that aggregate multiple food websites in one place. This is a user convenience option to gather all the favorite services within one collection and use a single ordering form for all.

  2. Transportation service providers. Both making food and delivering it all across the city can be hard for some businesses. The app does the job of assigning you the person that will bring and deliver the package. These can work both outsourced B2B and B2C.

  3. Top-to-bottom food company that does everything. You make the food and deliver it. Complete-service on demand delivery app development is characterized by the need for additional control over the whole operation. The reason being it’s hard to monitor so many stages of completion that go beyond the walls of your restaurant. Thus, you need to build a piece of software that does everything in its power to make the work seamless.


Each business type comes with its own set of order processing dependencies. Namely, the parties involved in logistics. Overall, there are restaurants, delivery, and, of course, the customer. Here are the page layouts for different actors:


Client

Sign in – page where users can enter their credentials to register, sign in via a social profile or choose to proceed without registration;

Order menu – choose the ordered items;

Drop point selection – select the address by placing a pin on the geo-map or entering it into text;

Checkout – choose payment methods. Details for online-payment, multiple purchased dishes, along with delivery fee and final price – all displayed. Make sure to include both online and offline options payment;

Review – leave feedback about the quality of service.


Delivery Personnel

Sign in – on this page the delivery person will be able to register and enter. It is important that the freelance couriers are screened and interviewed by an in-house manager before you hire them;

Order distribution – page where orders are listed and assigned to each person;

Order details – the current state of the delivered item;

History – the list of completed orders.


Food Company

Sign in – login page for managers;

Administration directory – main page to check the general metrics and notifications;

Specific order – progress and stage of the order. The item should only be approvable for cooking after it’s booked by the delivery person;

Messaging – manually sending out notifications to users and delivery personnel regarding the order status;

Payment directory – creating invoices and sending them to customers;

Reviews – getting user feedback.


This is the basic roadmap to help you make a food delivery app as well as some relevant functionality you should be aware to include into your project.


USER EXPERIENCE

Don’t underestimate the power of details. The more aesthetically pleasing the user experience, the more soothed the person will be to make the final purchase. This is the game of associations – each visual and interactive element packs a symbolic meaning. It’s quite easy to underestimate the depth of how far this can go even with colors. For instance, imagine if Facebook neglected its emoji list and made every smiley face blue instead of yellow.

Here, you may observe the UI from our test project to give you a better idea. We’ve used a set of visuals and pallet that complement the presented goodies without stealing any attention from the primary objects.

The same concepts go for the animated actions. Two main motions the user will do are tapping and swiping. Make these changes more spectacular by adding visual effects. They don’t have to be some kind of explosions and excessive Blingee glitter. The notion is to create a lightly playful impression. Explosions aren’t playful, right? Golden flares would actually be appropriate when the user is redeeming rewards in terms of promotions etc. On the order page, it’s enough to create a tiny change for each action.

This includes the event when user touches the screen and it is not yet definitively a swipe or a tap. Briefly change the visual of the interactive object to achieve a minor but tangible response. This will play a huge part in making your app feel extra responsive.


With swiping it’s important that your transitions are not too trigger happy when it comes to traveling between different sections. User shouldn’t be able to swipe away accidentally. Add a certain amount of distance/effort needed from the user to swipe through in order to complete the transition.



As for horizontal swipe in particular, a good idea is to fit half of the previous and next item images into the screen along with selected item in the middle. User will be able to see a few options at a given time. One way this can be done is by creating a roller. The side items will fit better by looking smaller and make your app wackier.


In order to make the UX more elaborate, you may add some details into the transitions. Create parallel visual cues in the background for big swipes and make them scroll slower than the main items.

Tapping, on its own, can have a more “hitting” effect, sending the purchased item “flying” into the cart or having a goofy rippling effect. It may also trigger a nice looking transition animation, shifting the UI panels around. If the tap is meant to remove the item from the list, make sure it looks gradual. Add a little fade to the disappearing object.

You get the idea. There are many competitors fighting for the same client base, so you better stand out from the average local food delivery app and make yours more special with a fancy looking UI.

Unique features that you will need

You should pay extra attention to what makes the list of the most successful apps in your line of work – special features. No brainer to your clients, these will be a complex undertaking for your project.



DELIVERY TRACKING

Taking the beaten path after many big players, you may create geolocation tracking of your orders. Luckily there are a few APIs that you have at your disposal.

  1. Client’s location. Google Maps API for Android and CoreLocation framework for IOS will help you zero in on your client.

  2. Directions for the courier. Android devices will use Google Maps API all the same, while IOS will use Map Kit.

These are the two functions you will need to integrate in order to build on-demand food delivery app that tracks devices. As an alternative, much like Uber, you can use Google Map API for both for iOS and Android.

What you can also do is start an estimated delivery time feature. Some orders can be done remarkably quick and the client would love to know it. Market veterans like Dominos are already doing estimated delivery time but this one’s very data intensive. The reason is you’ll need to set up some machine learning which requires time and patience to gain momentum. Calculating it goes beyond the city map road length and needs to be based on big data. This is why the cost to create a food delivery app with this feature from the get-go would be too high, and you’ll only be able to present this function long after the launch.


WITHIN APP PAYMENT

As we’ve mentioned before, this is an essential feature that you as a food delivery company should not ignore. Allow card payments via the internal mobile banking services as well as PayPal’s Braintree, Stripe, Worldpay or Adyen, depending on the part of the world you operate in and the cost benefits for your users.


PUBLIC API

Releasing a public API will help your business expand as 3rd party developers will be able to use it and unfold your network in different cities. Also, middlemen will be able to integrate your app with their platforms and drive you some additional sales.


PRE-MADE LOCK-SCREEN

When delivery is set in motion, the only thing left to do is wait. What you can do is make a nice custom lock-screen that would keep the client informed with no need to unlock the device.


REVIEW SYSTEM

Obviously, it’s essential that you create a rating system and ensure that the entire chain is doing their best to provide top quality service. Couriers will be incentivized to keep up a good score, even when they are representing your company far away from the HQ. A great idea is to also allow rating the quality of food. There are successful examples of companies using food score as well as direct messages with chef.

This guide will give you some idea of what kind of architecture a successful food delivery app is supposed to have. Despite the huge competition in the market, we believe there’s always room to do everything even better and succeed. It is our hope that this guide will play its part in helping you.


Author: Slava Vaniukov More

Floorwatch: How We Developed an Uber-Like Application.

Uber economy, Uber-like apps, Uber, Uber, Uber. It’s amazing how often the company has been brought up over the years of its brief claim to world domination. The disruptive effect Uber had on business and world communities inspired a large number of success cases for those who have adopted the formula. Inevitably, we too have had the chance to create an Uber technology app and, of course, it had been a success.

Floorwatch is a brand new customer service solution that allows tech stores to maximize the power of their sales teams.

Let’s think about the retail store client experience in a regular setting. The person comes to your store to buy a piece of tech. Does he or she want to talk to the assistant at a given time? What if the entire team is busy? There is always guesswork at play and sometimes the timing or the approach don’t exactly meet the client’s expectations. All these lost leads are the price that you don’t have to pay anymore.

Floorwatch empowers your clients to call for the assistant whenever they feel that they need one. In addition to that, they can also rate their experience. The sales team gets a new way to reach out to the client and offer timely assistance. At the same time, personnel managers get their hands on a versatile database that measures the feedback rating of employees. The superadmin arrives at a holistic picture of the staff performance in all stores within one’s network.

These are but a few of the ideas we had to fully flesh out in course of our development. So how do you create an app like Uber but for something other than cabs? In this piece we will go into more detail on how we’ve built the Uber clone for shopping:


DRAFTING THE SUCCESS

So, what’s the recipe for awesomeness? As always, it all starts with preparation. We’ve had discussions about the custom app for retail stores ever since 2016. Of course, the cost to develop a taxi app that’s destined to deliver a world-class innovation can actually be daunting for startup teams. In pursuit of the next Uber it can be expensive to hire taxi app developers in USA. The kind folk at Floorwatch have reached out to us for a more iterative development process which was one of their top priorities. And so in June we’ve started prospecting.

First of all, we came up with the structure and worked out the business logic that we’ve built upon ever since. Together with our UX/UI designers, we’ve devised the architecture that would deliver the unique value offered both to the client and the company in the most effective manner.

Floorwatch was meant for three types of users and, going from this, we’ve designed the separate front end chamber for each.

Client Cabinet — designed for the client to request assistance in the most convenient manner and obtain useful information.

Admin Cabinet — created for the sales representative to receive the client request and do the initial communication.

Superadmin Cabinet — a dashboard for the owner to view the stats and manage multiple sales teams across different locations.

When talking coding, Floorwatch consists of the back end that runs on Ruby on Rails. It packs the entire logic structure and interactions of databases. The back end stands separate from the front end.

Floorwatch is also using real-time data transfer in order to track the nearest shop locations and display them as a dynamic hierarchy in the search that shifts positions depending on location.

The user and team member versions are made native for both iOS and Android, while the admin is made for web usage.


CRAFTING THE MAJOR FEATURES

After we’ve settled with the general layout and the database structure, we moved on to projecting the functionality and every minor detail therein.

When thinking how to create an app like Uber, the most sophisticated part is the client experience. We had to build maximum value presented in the most seamless fashion. All to encourage the client to install and use the app. No one would get a mobile app for taxi service and have it installed if this proposition wasn’t sufficiently useful. After the download, all the user has to do is to sign up using a social media account or just email address.

What one gets afterward is the most essential piece that makes Floorwatch so exceptional. It’s the same thing that changed the world of taxi with the rise of Uber and has so much in common with taxi booking app development.

With Floorwatch, the service provider is getting the user’s location and knows how close the person is to the shop. In return for signing up, the app offers a unique feature called geo-fencing which unlocks a special functionality when the shopper is close to the physical location as well as the working hours of a specific store. In addition, Floorwatch tips the user that the store within the Floorwatch network is near even if they are just passing by on some other business. The end-goal is quite similar to that during the taxi app development. Now the person doesn’t need to wave their hands around and has the option to summon the assistant just by tapping the get-help button. Meeting the client in person is of course preferred but in case there is no one on location, the call-by-phone option is made available.

Afterwards, Floorwatch empowers your client to rate their experience with the salesperson. In addition, the app is:

  • Providing the list of shops, starting from the ones that are closest with result filtering options;
  • Displaying the individual store’s address and fetching directions when the address is clicked;
  • Showing the working hours of the selected shop for the current day and all days of the week upon clicking;
  • Providing the official site for online shopping as well as the Home Depot page of company.

As for the stores, the massive advantage of having the user onboard opens up a whole different world of opportunity.

Among other things, the sales team can now interact with the client thanks to the chat. Before passing the request to your employee, the chat is used to specify the query, opening up a few branches of dialog that the client has to choose. These options don’t offer excessive variety as not to confuse the user and lead to the major part of interaction being held in person. By default, there are only 3 dialog options at the start that identify that the request is meant to ask for help, product information or seal the purchase. Thanks to this, user gets to categorize the query and gives their personal location to your representative. Eliminating the need to repeat the same questions manually towards each client.

After the client is done answering, your salesperson gets the flare with all the needed chat history before confirming the request and heading out to meet them. When this happens, the 5-minute timer sets off to ensure that the response is rapid. When the counter has fallen down to 0, the question pops up, asking whether adequate help has been given and the rating menu is displayed afterward. If the associate has failed to arrive and the time is up, the client can confirm that no adequate help was given and then proceed to the rating menu. These steps will provide the additional time your employee can use to make it on time.

             

There is no special hardware needed for the team members to use the app and they can install it on their Android and iOS devices. In case the company doesn’t allow its employees to carry their own mobile devices during working hours, the design is also adapted to work on tablets or browsers.

At the end of the day, owner gets the essential tools to gather detailed information about the rating of different team members as well as the metrics of an entire shop within the chain of your store locations. The actionable metrics that you receive about your employee are the score of user satisfaction, ability to respond within the designated timeframe offered to the user and the number of cases solved by the person.

So that’s our Uber like app development story. It took us roughly 10 months of active development to make it happen. Some of the trickier parts in creation of Floorwatch were working out the SQL request to arrange the hierarchy of shops by their changing vicinity as well as arriving at a thought out system of metrics that would pass on the data from the user to the salesperson and then all the way to the superadmin. The same also applies to the somewhat difficult interaction between databases but nothing we couldn’t put together in a seamless fashion.

All in all, our developers did their best to create this awesome mobile app, and we are very happy with how we’ve managed to embed a whole array of useful features based on the given concept. Right now you can sign up for Floorwatch and get your free 30-day trial by following this link. Should you find this piece interesting, don’t forget to check the post on our work with JibJab.

Author: Slava Vaniukov More

nopCommerce vs Shopify Comparison 2017 Guide to Picking the Right eCommerce Solution

Today, it’s easier than ever to set up an online store. Everything is pre-made, from drag and drop interface builders to open source code frameworks that let you fully customize every function you need. As for the nopCommerce vs Shopify – the answer depends. It’s what you really need from the toolbox. Our company has worked with both for a while, and we should say that these products are very different. Furthermore, they keep on updating their features to cover more ground. Here is how they compare in 2017:


Shopify is a template based ecommerce platform to create fully customizable web stores with no coding needed, what so ever. It’s a good solution for a one-man army online shop owner. The kind of person, who may want to run things right from their apartment. Shopify even makes its own hardware for such cases. For example, the Shopify POS. A Debit Mastercard and Visa Debit card reader compatible with Apple iPad that works in USA and Canada.

Shopify comprises a huge collection of themes and prefabs that takes on any need you might have with its drag and drop features. The payment plans are flexible, and there is an entire Shopify app market running with community made extensions for your store’s design. Shopify charges you on a monthly basis as per your chosen payment plan, plus any additional functionality and apps you’ve bought. Basically, you shop for whatever you need for your online shop. For a startup with a simple but unique project, this will work great. For developers who are used to code everything on their own, Shopify would actually feel constrained.


nopCommerce is an open-source ecommerce framework. It’s free, and the tools are powerful enough to let you create any workflow that you require. However, nopCommerce cost is what you’ll pay to your developers to make it happen. Recently, the platform has migrated to ASP.net Core, and it keeps improving the structure with new custom solutions.

The architecture allows dynamically adding new functional elements to your websites on the go. It’s more of a “do everything yourself” kind of baseline. However, nopCommerce makes effort to compensate what it’s lacking in simplicity by featuring pre-made extensions from its own marketplace. In general, the pros and cons of nopCommerce are the pros and cons of most CRM online shopping carts that let you define your code. It should be said that each site comes with “Powered by nopCommerce” tag at the bottom of the site. In case you’d want to take it down, the nopCommerce pricing to remove the copyright tag is $150.

Here are a couple of demo stores of nopCommerce and Shopify.

Aside from taking a completely opposite approach to creation of ecommerce experiences, here are the most important functional differences that are quintessential to Shopify vs nopCommerce debate.


Key features unique to nopCommerce

Multiple stores with a single root – one of the main aspects that make nopCommerce so powerful, is that you may deploy and manage multiple frontend shops from one place. This opens up an array of opportunities to create mini-stores separately for B2B and B2C. You may also set up shops that are “specialized” in narrow assortments of goods or doing promotional activities.

  • The stores can be connected to a single catalog database so that your customers may use the same login data for each shop within the network;
  • On the other hand, you may specify each shop you wish to single out from the common base and make separate regulations, be it tax rules, products, manufacturers, reports, order filtering, etc.

Multi-currency checkout – customers may choose the currency to pay for your goods. Noteworthy, as this feature is N/A for Shopify. You can only customize the product price displayed to the user. But they will be limited to actually using a single one when making the final purchase.

Languages – nopCommerce lets you work in languages beyond Roman alphabet. Not supported by Shopify in case that’s what you need.


Key features unique to Shopify

Shopify Payments – doing business in certain countries, you can have direct debit card transactions. Shopify overrides all banking fees and only charges you according to its own payment plan. This feature is currently available for United States, Canada, the United Kingdom, Australia, Ireland and New Zealand.


Notable Common features

Here are the specific structural elements that Shopify and nopCommerce both kinda have. Some are closer to identical, while others differ to a certain extent in their execution:

Product variations – You can customize your products as much as you want. Create multiple-color, weight, size and other attributes for your stock. There are also features for on-website product comparison both with nopCommerce and Shopify via the Product Compare App.

Price adjustment – you may create advanced pricing decisions for your items. These can be “call for price” for extra valuable stock items, as well as “donate any amount you like” UI components.

Stock regulation – both frameworks have native means to verify stock counts of different product variations as well as to document and organize all items. You get a clear image of your warehousing by having the status of each order displayed.

Marketing tools – you’ll be able to present your clients with discounts, gift cards, coupons and other special offers. All the relevant functionality is there. Both nopCommerce and Shopify give you an option to run your blog and forum. With Shopify you’ll find non-native apps for this, however content heavy directories aren’t really suited for it. You will have to run the blog externally. Otherwise, it will undermine the overall site performance. To be fair, the most common complaint in the average nopCommerce review also happens to be performance due to scaling and site pre-load.


Multiple-Vendors and Drop Shipping – in nopCommerce you can host all the vendors you want under the hood of your website network and make all the sales on your own behalf. When the sold item is ordered, the purchase request is automatically emailed to the vendor. Each vendor can be granted a separate administration profile to help review their reports and shipment details.

Shopify itself features an app that turns your online shop into a multi-vendor marketplace. This model is a bit different in its approach to the above. Multi Vendor Marketplace is inviting all vendors to enter your online store as sellers and trade on your platform for a commission.


SEO – fully covered in nopCommerce and Shopify. All directories are optimized with general search engine terms. Complete access to keyword tags and URLs. Both have XML sitemaps. As for the HTML sitemap, in Shopify it’s available via Sitemapper.

Payment methods – both solutions pack an extensive array of options. Please refer to the official documentation to see the full supported lists of payment modules for Shopify and nopCommerce.

Shipping prices – there are standard options available, however with Shopify, you have to get an app to further diversify the functions. For instance, there is no per item rates option, and you can only set up general shipping rates.

Taxes – fully customizable options for different store items. You have everything you need to deal with legal aspects of your business. You get to set up the rules and exemptions as per your needs. With Shopify you will need additional scripting to set up VAT-included prices.


Shopify Architecture Concerns

As for the pros and cons of Shopify – you need “easy to use” and Shopify delivers. However, the more pre-made scenarios the solution can cover for you, the harder it gets to nail every outcome you might want and then fully optimize it. For instance, you can’t set up subcategories in your dropdown menus on the main page, and you need a workaround to make it happen. Some essential Shopify features are built into specific templates, and so you have to choose the one you need carefully.

Additionally, with App Store software star ratings and user reviews comes the issue of publisher’s detachment from the primary product. There are good apps, there are bad ones and some middle ground. All available to you. The whole idea puts the reliability of such model under question. First of all, mixing a huge amount of Shopify apps can mess with your store theme. This is due to adding HTML and JavaScript that may fight your native site code. Some apps also make additions in the Liquid code that Shopify is made with, and then don’t properly remove them. Think about this when running short test launches of different apps and then taking them down. Look for modifications in directories the app has been using in order to properly remove the traces. You may also download the backup of your theme before trying anything new.

Secondly, a big patchwork of apps can take down performance. Big loading times will frustrate your users, causing them to leave. Screen how well the creator’s customer support is working before getting a new app in case you need their help.

While you should be aware of these downsides to Shopify, it remains one of the best “average user-friendly” products out there. In context of this review, it’s not really “nopCommerce does all this better”, it’s “build your online shop from scratch and manage things on your own.”


Our verdict

With all the above, the answer to what’s better and what’s worse lies in what’s the best fit. Shopify vs nopCommerce compare poorly as they fulfill very different kind of goals.

If you need to create a single limited-niche web store with no coding expertise, then you should choose Shopify and skip to working with your strong suits such as marketing/sales. You will build the layout of your website with your bare cursor.

If you plan on building a huge business with multiple stores and intricate customized logics that you can scale when expanding your enterprise, then you’ll definitely want to stick with nopCommerce features. For this solution, you will need to hire a team of tech specialists. Plus, it will cost you more time and money in the beginning, but further allow to seamlessly grow.

Pricing, on its own, is a matter of perspective. On one hand, accumulating Shopify apps can gradually blow up your expenses. On the other, getting professionals isn’t exactly free either but can be cheaper and more efficient down the road.

Transaction fees for Shopify also add scaling considerations as they can take a big toll on huge revenues. This aspect can be taken to the minimum with varied options in different payment plans.

Taking your business online means learning from scratch which is not very easy. Here, we’ve tried to compare the key aspects of each platform. If you’re new to ecommerce, we hope that this guide will help you choose the right foundation for your future sprawling online store.

Author: Andrii Ilnytskyi More

How to Create Your Own Cryptocurrency Exchange

How’s Bitcoin rate doing? Probably going up and there are many reasons to why. Some invest into Bitcoin, while others use blockchain as a foundation to create unique business models. Many people are simply loving it due to the sheer idea of decentralized economy, meant to overthrow banking financial reign. As for those looking to make a fair and tremendous profit, there are 2 bold ways to do so. One is to create your own cryptocurrency with unique financial capabilities. The other is to create own cryptocurrency trading platform to buy/sell blockchain powered currencies which, of course, includes bitcoin exchange but goes far beyond it. This article is taking the option number 2, embarking on the road to establish a full-fledged cryptocurrency exchange platform and solve the design challenges therein.

The product you are going to build is a seamless marketplace that connects people who buy cryptocurrency to those who sell it, with involvement of fiat currencies. How your platform is going trade may differ. Some cryptocurrency exchanges simply trade with their users at the world market price. Others partially give some open data on the state of trading within the exchange via their order book. They provide users with some advanced functionality like designating set price of their orders. As a person setting out to develop a cryptocurrency exchange platform, you should decide how much transparency are you willing to provide.

One of the first things you need determine is the amount of scalability you will need for the future growth. In terms of growth capacity, the architecture of exchanges is split into 3 types:

Synchronous - not very complex compared to the other two. These small exchanges process each order in a streamlined fashion. The change goes from the interface to the order book and customer’s account. This cryptocurrency exchange can hardly scale and large trading volumes will discompose the order book.

Asynchronous - this is a medium-grade exchange. It is characterized by passing the requests between separate layers. From the UI, each request is added into one of the queues that run as separate services, usually on dedicated machines. Upon execution, request status updates are sent to the UI. Every big feature on the exchange has a separate service that ensures its work. Also, there are maintenance services that run on their own without user involvement. Asynchronous architecture is much more powerful in terms of scalability.

Distributed - based on groups of services much like Asynchronous, this kind of exchange goes further by also splitting the customer requests. These partitions are called shards. They can act and be processed separately from each other. Based on cloud, this kind of exchange has infinite growth capacity.

Most of the notable exchanges are asynchronous. Here is how you create the major functionality that is integral to build a cryptocurrency exchange platform of this kind.


Exchange structure

The infamous services that run separate request queues can all operate on a single or multiple machines. They are specifically designed for the latter. Here are the separate components that will run on their own:

  • UI. Service-based, combining JSON web services with knockout.js + jqGrid;
  • Transaction engine;
  • Bitcoin client UI;
  • Market maker (simulated volume of transactions);
  • Customer service interface in the backend.


Integral elements to sustain the exchange

1. Huge active user base. There must be a large base of people buying and selling. Enough to ensure the demand and supply balance, plus sustain the rates in cases of large orders. In other words – liquidity.

Problem is, you need users to get it, and new users won’t be attracted to an empty exchange. The owner may inject initial assets to get the trading going. But due to the low amount of users, trading volume will eventually be skewed, deviating the rates far away from other exchanges and rapidly depleting all the funds. To ensure that a single purchase does not drastically tip the scales, you need huge amounts of people buying and selling to drown the affect individual has on the general trading.

The issue is resolved with the Market Maker service. It creates virtual purchases instead of real people to balance the trading. Market Maker measures its own rate deviation window by checking the live order book from the APIs of other exchange markets. Your exchange makes purchases within itself and then does them on other exchanges to even out the trading volume. This way exchanges hedge the risks and simulate the essential activity when there is none coming from users.

2. Rapid server response to users. The orders have to be instantaneous. However, when users are trading with the set price feature, it is impossible to send the order information to the server and receive rapid confirmation. Which is sad because the rates are always changing. For this reason, some exchanges confirm the user side of the order long before it is registered on the server, paying the possible expense deviation.

The speed is achieved via memory caching. However, it cannot come at cost of calculations’ quality, which are performance intensive. For this reason, the calculations are carefully verified under the hood.

3. Special user features. The majority of your users will not get into this complex functionality, however, it is essential in bringing seasoned traders aboard. These features are the hardest to pull off:

Multiple cryptocurrencies – implementing support of an entire range of various cryptocurrencies aside from Bitcoin.

Choosing among multiple offers – viewing the prices that traders offer and automatically “taking the best deal”. This is contrary to the practice of releasing only the general market price to the user, without the order book.

Compound orders – creating an automated trading algorithm to buy/sell within a certain rate window.

4. Platform security. Fund safety is the cornerstone concern for a  startup company that deals with blockchain. Your exchange market has to be a bank vault in terms of penetrability and fund safety. Here are the main security concerns for your future exchange.

4.1 Cybercrime

Exchanges are a popular target of choice for hackers. They are both semi-legal and semi-regulated in most countries. This is why the prosecution of culprits who undermine cryptocurrency platforms is a difficult matter. Both with big and small heists, the hackers convert stolen crypto-assets into fiat without much trouble. Intentional malicious activity can be external in its origin and also come from within the group of people you hire as team members of your company. The criminal will attempt to either gain access to a user account or the administrator’s.

There are 5 technical causes for security breach:

  • Rogue process privilege increase;

  • Unauthorized admin account access;

  • Server access violation;

  • External partnering platform security failure;

  • Ill intent on part of the staff.

Compromised user accounts. Whether it is confidential data leak on your end, malware on person’s PC or social engineering, there are 5 measures that exchanges do to prevent such incidents:

  • Integrate top libraries for user account administration;

  • Use 2-factor authentication for account entry and transactions;

  • Require real personal documents as well as manual approval from webmasters to greenlight huge transactions.

Compromised administrator accounts. is a number of checks and balances in place to prevent and limit unauthorized activity in case one of the admin accounts gets hijacked:

  • Every significant administrative feature is divided from the others by being placed on a different page and accessed by a different person;

  • Limited personnel account access. Each employee can only access the functionality within one’s range of responsibilities;

  • Collective access. High-value operations cannot be accessed by a single person and require multiple individuals for execution;

  • Platform development runs independently from the production. The head of developers triggers the automated launch. High-ranking officers monitor the operation.

Malicious processes. Can be brought in due to malware exposure or by a perpetrator. Sinister processes can quickly penetrate an unsecure server and cause significant damage. Here are the features meant to stand between your cryptocurrency trading platform and malware:

  • Every service is situated on a different machine, physically facilitating any unwanted activity;

  • Admin notifications for when trading gets unbalanced and transactions become unreasonable for the exchange platform;

  • Live log displayed in code, showing all financial activity;

  • DDOS defense via an active firewall. A request has to go via three separate servers and only certain IPs and ports are granted access;

  • When using cloud servers, each has to be encrypted;

  • Cold storage devices to keep unused cryptocurrency deposits with a separate device for profits. The devices are hidden in safe boxes and can only be accessed by chief executive personnel with signed paper notices.

This should cover all the measures used to secure the exchange from intentional harm. On this page called Blockchain Graveyard, you may find the world statistics on major cryptocurrency exchange hacks with case briefs.

However, cybercrime is not the only nor the biggest threat to your exchange.

4.2 Unprofitable service provision. Various factors can mess up the trading dependencies and cause unreasonable transactions that will quickly deplete all the funds away from the exchange. Unlike partial monetary loss with hacking, this type of issue can lead to full bankruptcy. Here are the actions used to maintain stable work of the exchange.

Excessive trading volume volatility mitigation

  • Virtual orders regulate the low trading volume via the Market Maker;

  • The rates updated by the Market Maker are refreshed almost simultaneously with the source exchange;

  • Deposit/withdrawal fees help to negate loss of trading volume;

  • Market Maker service is closely monitored via a live volume dashboard to prevent malfunctions with notifications sent to admins.

A popular feature for currency exchanges is offering loan credit, generally referred to as leverage. Exercise caution as users owing you money are a liability with high likelihood of abandoning you in case of their disadvantage.

User loan return failure prevention

  • Users are allowed to borrow only 40% more than their overall fiat balance with this feature;

  • Enabled only for customers with good transaction history and manually approved;

  • Not allowed if there are no funds in the user’s wallet;

  • When the user approved for leverage is facing a negative balance, custom service is monitoring the state. It sends a series of repeated notifications about the owed funds both to the user and admins.

4.3 Technical malfunction. Things get broken. Damaged software or hardware can trigger a series of negative changes that will break the trading algorithm. When dealing with huge amounts of money, such bugs can be detrimental to your capital. Here are the best practices meant to minimize the losses in case of such events:

  • All changes are calculated and reversed if they prove to be wrong;

  • Double-checks by multiple services. The system is checking the balance in the interface layer and transfer service;

  • Sum validations. The account balance is periodically checked to match the resulting amount from all operations done by the user;

  • Regular backup of the order book, accounts and all operations;

  • Admins are notified in case an abnormal state arises;

  • User activity log available to admins in order to backtrack all the changes.

This is the general layout of the internal structure you need to put together in course of your cryptocurrency exchange platform development. There are a lot of specifics involved with each element of such project, and we will try to cover them in further pieces dealing with this topic.

See you in our next post

Author: Andrii Horiachko More

11 iOS 11 Features You Must Know when Developing Apps for iPhone X

iPhone X is hitting the shelves pretty soon. Ahead of the official release, Apple has been encouraging the techies to start creating and publishing their Xcode 9 (beta) apps long in advance. All to power up the hype for the new addition. And it’s a tease!

Aside from the crisp 5.8” Super Retina Display, the developers will finally get their hands dirty with the most cutting-edge firmware for face tracking, augmented reality, machine learning and more. Our company has already begun testing some of these goodies. Here are the main highlights, you should consider when planning to develop app for iPhone X:


1. Machine Vision

iOS now features ARKit. Together with TrueDepth camera, the brand new toolkit will enable space awareness capabilities to plant 3D objects into the camera view. Origin and orientation of the coordinate system are fully customizable.

2. World Tracking

Key to enabling AR with changing camera view is the awareness of the device’s self-positioning. Here, at play are the aforementioned computer vision together with internal motion sensing hardware. This process is called visual-inertial odometry. It tracks parallel horizontal surfaces to plant objects and is also able to estimate the room lighting, adding appropriate amounts to the rendered 3D object.

There are 2 types of requests to handle for image processing: VNImageRequestHandlerfor a single image and VNSequenceRequestHandlerfor multiple images which are outputted intocobservations.


3. Face Tracking

FaceID is not the only asset that goes with facial recognition. There are dozens of potential applications to this nice feature that come as part of ARKit. The front camera attributes the face with a number of anchors representing the position, orientation and topology converted into readings about the facial expression. These can be used to gather facial data and, say, mirror it on a 3D character.

The particular handlers with face tracking are VNDetectFaceRectanglesRequest to detect general faces and VNDetectFaceLandmarksRequest to track separate facial features and capture them in the “results”.


 img img


4. Information Tracking

Less promoted but, nonetheless, new to iOS devices, now, available with ARKit are:

VNDetectTextRectanglesRequest – camera view image text detection;

VNDetectBarcodesRequest – barcode information processing.

You might be stoked about all this new technology coming your way quite soon. However, many of these things are not yet fully adapted to harsh scenarios. For example, with AR, environmental details can be difficult to measure:

  • Unclear exterior, as well as poor lighting can be challenging to adequately plant a 3D object;
  • Quick camera motions disrupt the tracking. Extreme distances will also produce bad results;
  • Refine the image with slow camera movement in order to capture the surfaces from changing angles; This will gather relevant world tracking data on your device;
  • When plane detection is complete – disable it to preserve a clear estimate of the environment.

In the process of iPhone X app development, you should be aware of these limitations and test how much your app is constrained by them.

Also, the old devices won’t be able to support the new features. Here, we’re talking only iPhone X, however, for a startup, backward compatibility can make a huge difference, so mind that it might not happen. The ARKit firmware will be available for iPhone 6s, 6s Plus, 7, 7 Plus, but the joys of Augmented Reality are forever locked away from any devices below iPhone X. They don’t have TrueDepth frontal camera. As a business owner embarking on the road to build app for iPhone X you should consider that a large portion of the user base will not transition to the new model right away. The main reason is the cost.


5. Machine Learning

iOS 11 now comes with native machine learning framework. Core ML is finally addressing a number of issues iOS has had in the past due to relying on custom third-party apps. Such as granting access to non-native software which had raised huge iPhone X app security concerns and performance issues. No need to stay connected to the internet to use the framework now as well.

This figure shows the complete sequence of how Core ML works with data:



You may also take advantage of a few Core ML models that are readily available or use Core ML Tools to convert your models into Core format.


6. Natural Language Processing

Together with ARKit, the new NLP is starring a whole bag of its own features. These are meant to greatly enhance NSLinguisticTagger. It’s the main API that goes far beyond only tagging and even further with IOS 11 NLP.

The interaction happens between tag schemes and tag options.


     let tagger = NSLinguisticTagger(tagSchemes: [.ENTER SCHEME NAME HERE], options: 0) is the requested outcome.

     [.token] – identifies the type of every token;

     [.language] – identifies dominant language in the text;

     [.nameType] – let’s you know if the word is a proper name;

     [.lemma] – gets you the stem from every word token;

     [.lexicalClass] – each token’s lexical class;

     let options: NSLinguisticTagger.Options = [.OPTION1, .OPTION2] are the conditions we add to filter the unneeded elements, etc.


Remember that the addition of Core ML for Apple is more of a catch-up rather than a technical breakthrough, though. It does not offer more than there is with Machine Learning apps in general, which are pretty limited and laborious to build so far down the road:

  • No learning on the fly, only from the past and processed data;
  • Every app needs to be trained individually;
  • You need to manually process, structure all the data prior to inputting it as “experience” and hire a personal life-coach for your AI to supervise the training;
  • Only able to process a minor part of human language;
  • No causation or ontological connections, only correlational conclusions;
  • Unable to handle symbolic meanings;
  • Low transferability and reusability of learned data;
  • System opacity makes the AI difficult to debug.


7. New Screen Shape


Relevant for development, the new screen now takes almost the entire surface. This time, curvier than ever.

The upper part of the screen is giving some space to the sensors, though, not entirely. Mind your app view when placing the device horizontally. Here is a nice working model:



       img


Also, think about leaving the upper status bar unhidden. It might provide the user with additional information that wouldn’t spoil your UX.

As for the bottom of the screen, you will pay a heavy price if you don’t heed the following designlogic: don’t place the app controls there. Bottom is the place for the Home button. Users will confuse the interactive elements and hit Home, resulting in frustration with your UI decision, to put it mildly. Also don’t hide the Home button away, unless it’s a passive user experience.


   img

8. New Aspect Ratios

New iPhone means new layouts and these will be quite different. A primary consideration to both update your apps for iPhone X and create new ones from scratch is the Safe Area. This area is not occluded by ancestors and your future apps will have to live with that.

The Safe Area is referenced with safeAreaLayoutGuide in the Interface Builder or tweaked with the layout margins. You will also have to turn on Use Safe Area Layout Guides in the Interface Builder Document.

Mind that with old iOS storyboards, enabling the Safe Area Layout Guides will override the constraints for top and bottom layout guides, as well as causing trailing edges. Always test the constraints when you do this.

These are some of the key UI ideas. Though, if you’re creating apps for iPhone X that don’t exactly walk the edge of the latest AR and ML features, don’t consider yourself left out. Both core hardware and software are getting their boost as well. There are tons of updates that will push the limits of what’s newly possible and provide thoughtful improvements to workflow.


9. Xcode 9

An extensive toolset for developers working in all Apple environments is getting some too. Aside from revamped editor with improved scrolling for any-size code document and search, here are the new features within:

  • New Refactoring Systems – thanks to these, it gets easier for developers to make changes from one place all across of their apps;
  • GitHub Integration – free GitHub Libraries are accessible right from the integrated development environment;
  • New iOS Playground Templates – made specifically for good performance both on Swift and Xcode;
  • Multiple Live App Testing – simultaneously testing a single project on many different devices;
  • Enhanced Debugging – new debuggers for Metal 2 graphics, unidentified behavior sanitizers to fight unexpected behaviors as well as the ability to debug iOS devices wirelessly;
  • Built-in Xcode Server – this one removes the need to install the macOS Server.


10. Swift 4

The core programming language couldn’t be left out either. Made open source in 2015, the fourth iteration now comes with a gamut of great improvements:

  • Access Changes – private methods and variables have long been restricted for usage by properties with the same definition. Even if they were all within one file. This issue has been bypassed by changing the private to fileprivate. In Swift 4 you can finally get access to privatefrom extensions within the same file;
  • Code size cuts – now Swift 4 analyzes which parts of the code are not accessed by the app and removes them. E.g., when working with a huge library, the methods you’re not using don’t get into the code;
  • Sequencing – no more need to use Iterator.Element to reach out to extensions thanks to newly added Associated Types. You may now simply use Element. Be warned though – these new association types may conflict with an already defined Sequence or Collection. Also, there are new methods that allow direct changes in sequences;
  • Combined classes and protocols – you can now make a declaration defined as multiple classes, types and protocols;
  • Strings revamped – strings.charactersnow removed and the new result for operations (such as division of string) called substring now added;
  • No Objective-C support, unless tagged with @objc – methods, functions and properties no longer generate compiled Objective-C copies automatically. For these cases, you will get a warning, but it might not be enough to properly address every needed instance.


11. A11 GPU and Metal 2

A treat for game and graphics developers. Together with powered A11 GPU, Metal 2 improves rendering, computing and more.

  • The new GPU now does not rely on CPU for resource allocation and other tasks;
  • With GPU Frame Debugger, developers will get their hands on hardware performance metrics which will help them do more intricate adjustments;
  • The new GPU is now 10nm after the previous iteration with 16nm, meaning more battery life and more capacity for GPU transitions.

These are some of the key new features and capabilities that are coming with the release. iPhone X ships November 3 and you can already build app for iPhone X with Xcode 9. The above will cover the changes and additions that developers should study to prepare.

Good luck!

Author: Slava Vaniukov More