Three Reasons Flutter is a Viable Cross-Platform Framework

Three Reasons Flutter is a Viable Cross-Platform Framework

Flutter, as you may know from one of our previous blogs, is Google’s cross-platform mobile development framework. Flutter has recently entered beta as of February 27th. I have only been working with this framework for about a month here at Shockoe, but in my limited exposure, I have seen the many ways in which Flutter can improve our delivery to clients.

 

For most products in any field, there are two important aspects of development: time to market and product quality. If there are ways for us as a company to improve these areas we have an obligation to look into them. With that in mind, I was eager to explore Flutter. Here are three reasons I believe Flutter is a viable cross-platform framework.

 

1. Flutter’s Implementation of Widgets.

 

One of the key fundamentals of Flutter is that everything is a widget. I really like this concept as Google provides many out-of-the-box options to help speed up development. Flutter doesn’t have a bridge to the native world as many other cross-platform frameworks have. Instead, Flutter controls every pixel on the screen, which allows for various great options for custom UI to be tailored to a client’s every need. With that, the widget catalog also gives developers a plethora of options to mimic native controls. This enables any idea to use the catalog to create a beautiful product without compromising quality. The following graphic gives a great visual of how widgets can be laid out for specific components:

 

Flutter’s-Implementation-of-Widgets

 

The section above is made up of four types of widgets. The parent row would be the outermost element containing 3 columns which each contain an icon and text. There’s a huge advantage to having a widget for seemingly almost everything, and the list will only continue to grow.

 

2. Fantastic Debugging Tools.

 

Flutter includes plenty of tools that have sped up development, including one of my personal favorites: the hot reload. With almost any update to the UI, you can use hot reload to instantly see all changes made. Additionally, Flutter offers plug-ins for multiple IDE’s (VS Code, IntelliJ). I personally use IntelliJ and the plug-in provides autofill, debugging, among many others features. Debugging within the IDE contains an abundance of options, but overall, my favorite is the debug painting tool. This tool allows the developer to see the borders on all of their widgets along with the paddings and margins to help clarify where a widget might need to be adjusted.

 

Fantastic-Debugging-ToolsAnother notable feature is the toggle platform tool which allows users to see the UI differences between iOS and Android with the click of a button on the IDE. This debugging tool helps keep development quick and efficient while maintaining quality across platforms.

 

3. Flutter’s Great Documentation.

 

When I was introduced to Flutter, I was excited and daunted by the task of learning a new language. As I started to dive into the documentation and was pleasantly surprised by how thorough it was. It made it extremely easy to start creating applications. Flutter uses Dart, which is a programming language developed by Google. A Javascript or Java developer should be able to transition to Dart with relative ease.

 

Overall, I’m excited to see the future of Flutter. As the community grows, I’m looking forward to seeing the plug-ins that are created and the new projects we will undertake at Shockoe! I have confidence that if a client comes to us with an idea, we will exceed their every need using Flutter to increase development speed without compromising quality.

 

 

 

Editor’s Note: 

Check out the latest from our developers!

SQL vs NoSQL, the ultimate database match

Comparing React Native to Axway Titanium

Kotlin: Three Reasons To Start Using It Today

GDPR and How Mobile Should Prepare

GDPR and How Mobile Should Prepare

It’s not just the EU that needs to worry — GDPR will affect developers at a global level

The European Union GDPR, set to take effect on May 25th of 2018 will have a larger impact than the assumed immediacy of the European Union. What this means for mobile developers worldwide is the need to adhere to a new set of regulations; such rules will impact the way in which EU-based user data is captured, stored, and managed. It is important to be prepared, as fines and penalties are slated to be devastatingly impactful should there be a misstep.

Let’s jump into the details.

GDRP-impact-on-mobile

 

What is the GDPR?

GDPR, or General Data Protection Regulation, is an EU law that is designed to strengthen privacy and protect data for individuals across all EU countries.  At its core, GDPR sets in motion new rules designed to give users, specifically EU citizens, control over their data and knowledge of how it is being utilized. Furthermore, it aims to simplify the regulatory environment so both citizens and businesses can fully benefit from the digital economy.

 

Some of the key privacy and protection requirements include:

 

  1. Requiring the consent of subjects for data processing
  2. Anonymizing collected data to protect privacy
  3. Providing data breach notifications
  4. Regulating the transfer of data across borders to ensure a safe procedure
  5. Requiring certain companies to appoint a data protection officer to oversee GDPR compliance

 

GDPR will go into effect on May 25th, 2018, and will enforce stiff penalties if the guidelines are not followed.

GDPR Will Affect U.S. Companies

 

If your company or organization collects or processes the personal data of an EU citizen, you will be required to follow the set regulations including those listed above. Your team will be on the hook to obtain consent from prospects and customers before collecting additional personal data and furthermore, must offer a clear means for deleting their records upon request.

 

If your company fails to meet any of the newly set regulations, be prepared for a possible EU-imposed fine. GDPR will apply sanctions to U.S.-based businesses through jurisprudence, and the aid of international law.

 

  1. U.S. companies with a physical presence in the EU: GDPR can be enforced directly against [U.S. companies] by EU member state authorities.
  2. U.S. companies without a physical presence in the EU: GDPR addresses this issue for companies that have more than 250 employees or process large amounts of data “by requiring companies without an establishment in the EU … to designate a ‘representative’ located in the EU.”

 

The reality is that this won’t apply to every U.S. company or organization, just the ones knowingly and actively conducting business in the EU. In this vein, EU courts have the discretionary ability to determine if any U.S. company was purposely collecting EU resident data and subverting GDPR compliance, which can be upheld under international law.

 

If your team is unsure of how to broach GDPR, Microsoft has put together a guide to assess your team’s  GDPR Readiness.

 

gdrp-affect-mobile

GDPR for Mobile Apps

Because GDPR defines “personal data” as the recording of any data that could identify an individual, many mobile apps stand to be affected. Names, phone numbers, addresses, as well as digital information including usernames and locations, ultimately signify that publishers will be responsible for the array of user data at their disposal.

 

Application owners must begin a process with their users towards demonstrating data-transparency, including how and why their personal and usage data are being stored. This requirement will place the onus of communicating updates and processes to EU users by May 25th of this year, a measure that is being touted a ‘first step in data security’ by GDPR regulators.

 

As an additional measure of security, publishers will be fully responsible for tracking the movement of sensitive data including all digital and physical access to it. As such, it will be imperative for publishers to thoroughly document data changes and maintain pristine logs.

 

The many regulations mandated by GDPR do have the benefit of falling in line with Shockoe ’s existing best practices. Data security in an age of rising cybercrime means that the responsibility of securing sensitive information falls into the hands of developers. Any mobile environment that exchanges data between app and server should be encrypted; this is a position that Shockoe always stands by with its clients.

 

Ready to Prep for GDPR?

Here are a few things for your company to consider regarding your mobile technology in preparation for GDPR deployment in spring 2018:

 

  1. Determine which data matters to your team and cut out the less-important fields
  2. Inform users of GDPR updates and obtain consent to store their data
  3. Respond to user requests in a timely manner
  4. Encrypt user data
  5. Ensure users are updated promptly about security incidents
  6. Know your technology and potential weak links, and address them with urgency

If it’s worth stating, it’s worth restating: Fines can reach up to 4% of global annual revenue or $23,000,000, whichever is higher. With fines this high, organizations can run the risk of severe penalty and even catastrophic failure, which is a sign of how serious the EU is taking consumer privacy through GDPR.  

Such a drastic shift in data regulations can be unquestionably daunting and confusing. There are many variables at play and potentially high consequences for not considering them all. If you work for a U.S. based organization, give us a call or send us an email; we’ll be glad to guide you through the required changes or discuss your specific needs.

 

Google Flutter goes Beta at #MWC18

Google Flutter goes Beta at #MWC18

What is Flutter? 

 

According to Google, Flutter is a mobile UI framework for creating high-quality native interfaces on iOS and Android. As a Google Partner and a company that has focused on building cross-platform mobile solutions for individuals and organizations, it is amazing to see a product like Flutter be released into Beta.

 

Better than other Cross-Platform Solutions

 

First of all, this initiative is backed by Google, which gives it a strong start. Also, the performance and platform integration are seamless and the structure allows us to build at high speed with great performance on both major platforms (iOS and Android.) Sure, there are some bugs and shortcomings, but that is always expected in a Beta version. We are on a trial run and, so far, our team loves it.

 

 

The team at Flutter highlights the benefits best on their Medium Post (Seth Ladd, Product Manager @ Google for Flutter):

 

  • High-velocity development with features like stateful Hot Reload, a new reactive framework, rich widget set, and integrated tooling.
  • Expressive and flexible designs with composable widget sets, rich animation libraries, and a layered, extensible architecture.
  • High-quality experiences across devices and platforms with our portable, GPU-accelerated renderer and high-performance, native ARM code runtime.

 

As a cross-platform mobile application development company, we are very excited about this solution because we can start using it immediately with our current apps. We don’t need to write our complete app in Flutter, we can simply add new Flutter-based screens to existing apps. Flutter is better than most of the cross-platform solutions we use today because it allows us, not only to build for two platforms but to make changes to the source code and see the UI updates in seconds, making the development process significantly faster.

 

If you are interested in learning more about Flutter, please reach out to schedule an informational meeting.

 

google-flutter-goes-beta

 

Mobile World Congress (#MWC18)

 

MWC is one of the biggest events on the mobile calendar. This year, more than in the past, the focus is going beyond our traditional understanding of Mobile Apps and pushing into the connected life or what MWC is calling “Intelligently Connected.”

 

Follow Shockoe to keep up to date on the key themes this year:

 

  • Artificial intelligence and machine learning (AI & ML)
  • Forthcoming 5G & LTE enablement
  • IoT smart city technology and edge computing devices
  • Big data and analytics
  • Technology in society and net neutrality
  • Consumer smartphone and tablet devices

SQL vs NoSQL, the ultimate database match

SQL vs NoSQL, the ultimate database match

In the blue corner, SQL stands with an arched back and titanium walker. In the red corner, NoSQL maintains steady movement and a toddler’s impatience.

Created in the early 1970s, SQL was the unrivaled choice for applications both large and small that were in need of storing, managing, and retrieving data. Deciding to implement a SQL-driven database was a no-brainer for developers and system architects because it was unmatched by its alternatives not only in reliability but also in its reporting capabilities. In recent years, however, SQL, the once unrivaled query language, is being replaced slowly but surely by the new kid on the block: NoSQL.

Let’s take a moment to evaluate and discuss the differences and similarities of these database models with a few areas of focus. For the sake of this discussion, we will use MongoDB as the NoSQL example and MySQL for the SQL example, but the assertions for NoSQL are not limited or specific to Mongo but also apply to numerous other NoSQL campers like MapReduce, Bigtable, Cassandra, and others. Many of these NoSQL technologies have similar capabilities and advantages, as well as weaknesses. Similarly, on the SQL/RDBMS side, we will reference MySQL, but the same ideas carry over for other solutions like Oracle, SQL Server, and others.

The Back Story
We first need a bit of backstory. We’ll begin by asking ourselves what SQL vs. NoSQL really means. To answer this we have to understand what a database and a database system are. Now, bear with me here, without trying to bore you to death, we may agree that a database is a system for storing and managing data and a database system is a program for managing databases. Got that? So next, the data in a database has to be organized in some way. The way in which various database systems choose to organize their data is referred to as a database model, and this is where SQL and NoSQL come in. On the surface, think of SQL as the relational model and NoSQL as the non-relational model. Diving deeper, we find that the relational model uses set theory and predicate logic, in which the data looks like it is organized in tables and columns, while the NoSQL model stores data as key-value pairs without any strict relation to each other. End of backstory; you’ve uncovered the plot, so now let’s jump straight to the three-round fight scene.

Ding!

Data scientists and architects assert that SQL is not out for the count, and I agree. Relational databases have a huge advantage compared to these wannabe newcomers primarily because they have excellent tooling, community, and support. The “why change what’s working?” question comes up pretty often when developers and system architects are faced with the decision of rolling out a data management tool. SQL offers two main advantages: first, it introduces the concept of accessing many records with one single command; and second, it eliminates the need to specify how to reach a record; e.g., with or without an index. Since most NoSQL databases lack the ability for joins in queries, the database schema generally needs to be designed differently and lends itself to some inefficiencies, giving SQL round one of this match by a small margin.

Popular NoSQL databases were pioneered by top Internet companies like Amazon, Google, LinkedIn, and Facebook to overcome the drawbacks of the relational model. The relational model is not always the best solution for all situations as it cannot meet the increasing growth of unstructured data.

NoSQL is better for unstructured data

You may have paused to ask yourself why some organizations have unstructured data. Well, social media posts and multimedia are only two examples of unstructured data, which should answer that question, but more importantly, since the world’s data is doubling every two years, companies now have a much greater need to not only store and accommodate unstructured data, but also to aggregate and use this data meaningfully. This is where the relational model takes a hit to the face giving round two to NoSQL.

Round three has three main focus; performance, planning, and price. Ideally, this is where the rubber meets the road in this decision. With NoSQL, instead of retrieving all the data

with one query, it is common to do several queries to get the desired data, but NoSQL queries are often faster than relational SQL queries so the cost of having to do additional queries may be acceptable. So if an excessive number of queries would be necessary and the company’s culture values performance, SQL or NoSQL may take the performance point for this round.

Planning is the second judge and it is very important, yet subjective. SQL databases have predefined schemas while NoSQL databases use a dynamic schema due to the nature of unstructured data. Therefore, SQL databases can be scaled vertically whereas NoSQL databases can be scaled horizontally. This means that to scale an SQL database, we simply increase the processing power of the hardware, while to scale a NoSQL database, we increase database servers in the pool of resources to reduce the load. Based on the organization’s planning culture, either SQL or NoSQL can take the planning point and this leave price as the final factor.

All companies make an effort to keep cost low so price an important factor. Most, if not all NoSQL databases are open source or very very low cost, which makes them very appealing. For the example, MongoDB, Couchbase, CloudDB, and Amazon’s Dynamo DB all allow very affordable implementations. On the other hand, among the major players in the SQL space, only MySQL (and its fork MariaDB) offers an open source solution. Both Oracle and SQL Server can be very expensive solutions due to the support they offer, which is usually readily available from their vendors or a fair number of independent consultants. NoSQL databases rely mainly on community support.

The Judge’s Decision
Depending on your vantage point or who you ask, some may agree that this match could have ended in a technical draw a few paragraphs prior, where unstructured data was a definite need and nothing else mattered. Another vantage point may have revealed that this match has ended in a TKO if no budget was allocated to database implementations and management couldn’t care less about database models, giving priority to an open-source-only solution. Ultimately, you decide who wins round three and therefore the match.

Despite your vantage point or decision, we all can agree that SQL and NoSQL serve very different purposes, with their own unique strengths and weaknesses; without them, developers and system architects would have been pulling their hair out trying to figure out how to utilize data locked away in filing cabinets to generate predictive analysis and graphs.

Ding!

 

Editor’s Note: 

Learn more about what our developers choose as their everyday tools and what our thoughts on these are:

Comparing React Native to Axway Titanium 

Kotlin: Three Reasons to Start Using it Today 

Node.js – Storing data with MongoDB

Design Tips to Increase Satisfaction in Banking Apps – Part 1 of 2

Design Tips to Increase Satisfaction in Banking Apps – Part 1 of 2

Retail banking consumers now prefer using their mobile devices more than any other bank interaction, which makes a mobile app a primary component of overall customer satisfaction. With greater ease switching banking providers at a moment of dissatisfaction, banks need to place extra emphasis on keeping their customers happy and loyal. This starts by giving customers the best tools available and a user experience that helps them access and navigate their banking needs without difficulty. Read more about our design tips for banking apps below. 

 

For the first section of this two-part series, we will cover examples of best practices that we have seen play a role in facilitating engagement and improving the user experience.

Any questions surfacing as you read? Give us a ring! You can always connect with us here.

 

Search & Navigation Part 1

Content Part 1

Guidance Part 2, coming soon

Privacy & Security Part 2, coming soon

Appearance Part 2, coming soon

 

 

Search & Navigation

search-navigation-components-of-app-satisfaction

According to J.D. Power, ‘Ease of Navigating’ is the key differentiator among top-performing mobile banking apps. If a consumer can find what they need in the app, this often yields a happy customer. This satisfaction can also impact bank operations by reducing calls to support centers with potentially aggravating wait times.

 

Let’s jump head first into some easily-executed ideas to help improve your app’s search & navigation as early as today.

 

Easy Login

 

Biometric logins such as fingerprint, face, or voice can facilitate a client’s access to their account.

easy-login-biometric-one-touch

Personalization Capabilities

 

Some banks give the user the ability to customize their application experience to their needs making each visit one that addresses their specific needs.

personalization-personalize

Using Navigation Icons with Label

 

An icon is meant to be universally recognized, but in many cases, they are not. It’s always a safe bet to provide a label next to the icon to provide clarity.

 

using-navigation-icons-with-labels

Use Plain & Simple English

 

Avoid using branded names that might be intuitive to your company, but not to a user. In short: use plain English when possible.

 

use-plain-simple-english-branded-names

 

Transaction History Search

 

Most banking apps default to filtering transaction history by date. Giving the user the ability to search their account is one more way to facilitate finding that specific transaction they have in mind.

 

transaction-history-search

Appwide Search

 

Few banks offer app-wide search to locate features & information. It might just be what your clients needed to discover new or undiscovered features.

 

appwide-search-my-bank

Clear ‘Back’ Access

 

Avoid using a home icon or cancel in place of a back.

 

clear-back-access-button

Autofill/Type-Ahead Searching

 

We continue to be surprised at the number of banks not make use of this simple yet effective interaction. Your customers will be thrilled to have it implemented.

autofill-type-ahead-searching

Content

 

The content that users access in-app should be concise, easy to find, easy understand, and help them reach their goals—simple right? Here are a few ideas:

 

Key Information Front and Center

 

Some applications give users the choice to view account their account balances before login.

 

key-information-front-center

 

Helpful Services

 

Provide customers with additional services that could help them reach their financial goals.

 

helpful-services

 

Real-Time Alerts

 

Use real-time alerts to keep customers informed on important account updates such as direct deposits, personal information changes, and bill due dates.

 

real-time-alerts

 

Avoid Hiding Information

 

Some banks hide interest rates behind an extra tap or elaborate application process. Be nice to customers and let them know what they need to know.

 

avoid-hiding-information

 

Avoid Jargon-Heavy Content

 

Avoid words such as Debit, Payee, APR — instead use Withdrawal, Recipient, Interest Rate.

 

avoid-jargon-heavy-content

Guidance Part 2, coming soon

Privacy & Security Part 2, coming soon

Appearance Part 2, coming soon

 

Editor’s note: 

We know you’re thirsty for more. Part 2 will be coming very soon! While you wait, check out our latest thoughts on UX Strategy for Banks. 

Have any additional questions or want to discuss what Shockoe can do for you? Click here to connect with us. 

Page 1 of 2912345...1020...Last »