Android apps: #SQL and #Java, #Designers and #Developers, #Information hierarchies, #Translation
Posted on October 23rd, 2015
10/19/2015 @Facebook, 770 Broadway, NY
Four speakers talked about different applications and challenges of implementing apps for Android
Kevin Galligan @Touchlab spoke about accessing SQL databases using Java while retaining the best characteristics of object-oriented programming with relational databases.
Kevin talked about the family of Object Relational Mapping (ORM) utilities to perform this linkage. Comparing the offerings is based on performance and structural features. Performance issues revolve around the following questions:
- Handling hibernation
- Understanding the db structure
- Foreign references (parent and child)
However, amongst Android ORMs, there is not much difference on simple tables. For more complicated queries, source-gen is measurably faster than reflection-based. However, Kevin warned the audience not to trust the published benchmark performances.
He then offered a high level comparison of the main ORMs:
- ORMLite –lots of apps run this, however is it slow-ish,
- Active android – looks like support is dropping off
- GreenDAO – external model intrusion, fast (source-gen), single primary key
- DBFlow – source-gen, fast, poor foreign relations, support multiple primary keys
- Squeaky – APT port of ORMlite, source-gen, single primary key,
- Realm – not like SQLite, column oriented, single field primary key, queries tied to thread, fast, foreign calls simple, but it’s under development and is so not entirely stable
The second speaker was Max Ignatyev @Synpli.io which is a collaboration tool to improve the communications between designers and developers. It offers a single platform for design changes, thereby eliminating confusion whether communication is via dropbox, email, text, etc.
The designer uses Sketch or Photoshop and the developer sees specs in dp and a common color pallet which is integrated as ready-to-use assets in the IDE.
Sympli.io is currently a free offering in beta test.
Next, Liam Spradlin @Touchlab spoke about how users navigate through applications and how to make interfaces so users know what to do next as they complete tasks. He proposed an information hierarchy in which the users see what is to be done immediately in an invert pyramid:
- Primary information and actions
- Important details
- Background information
The last speaker, Mike Castleman @Meetup spoke about the challenges of making Meetup.com more accessible to non-English speakers.
The first challenge is to translate all strings, with sentence translation being especially important to avoid problems with gender and plurals on multiple words in a sentence. They considered third party translators such as Google, but decided to use in-house, native-speakers as translators as they know the product. They also provide context to translators by uploading screen shots. They use PhraseApp as their management tool to organize your translations.
Once translated, the layout needs to be altered as strings often become longer in other languages, such as German.
Dates and times have different forms and punctuations, so they use tools such as CLDR – (common locale data repository) and Libcore.icu.ICU to get the conventions correct.
Sorting strings and search can also be challenging as some languages, such as Japanese are sorted by the sound of the words, not the actually lexical representation of the spoken words.