Tag: Google Drive

More on Audio

We are now able to create audio files on both the iOS and Android versions of our app, and are next working on saving and retrieving those files to and from Google Drive. Although both apps use Google Drive, the API’s for iOS and Android are quite different, and it is taking time to wade through the documentation and examples, try things out, and then go back and fix problems.

Meanwhile, we have also been doing a bit more thinking about the audio recording feature, and how it might work. We had the idea that recording each Torah or haftarah verse as a separate unit, and being able to play it back that way would be very useful. After looking at other audio recording and editing programs, we also will consider supporting the recording of each word or each phrase (marked by disjunctive trop) as separate units within a verse. A tutor may wish to record a verse phrase by phrase (or word by word) to allow students to hone their skills on specific trouble spots. A student, though, may want to record as a single unit a series of verses that have been assigned by a tutor. We need to think about how to flexibly to serve a range of needs.

{ Comments are closed }

Storing Application Data

As we design our Tikkun app, we are thinking about all of the content that will be user-generated. In the simplest situation, user-generated content will be stored on the user’s device, to be accessed there as needed. Today, however, it is very common to have both a phone and a tablet, and also to upgrade to a new device every few years. In those cases, users will want to seamlessly continue their studies via the app on another device. The app will support this by storing their content on Google Drive as well as on their device. In terms of data privacy, Google Drive includes a special hidden folder that can only be accessed by the app that is used to create the data. When a user signs in to Google Drive, our app will save or sync the user’s data on the device with the user’s data in the hidden folder on Google Drive. It will do this automatically over unmetered Internet connections, and also when the user explicitly requests to sync. This will ensure that the user’s data is available within the app whenever and wherever the user needs it. And this is all cross-platform: if you have both an Android and an iOS device (as I do), it will all just work.

To share content with another user, the data will need to be present in the sharer’s “My Drive” area of Google Drive. The app will handle this, and make use of Google Drive’s sharing mechanisms to handle the request. The app will, on initial set-up, create a folder in the user’s “My Drive” to store all of the app’s data which is being shared. The user who is receiving the shared content will be able to access it within their copy of the app, and will also see it in the “Shared with me” folder in their Google Drive.

With today’s concerns about data security, we believe that use of Google Drive for sharing and syncing is the best solution at no additonal cost. This FAQ page from Google answers various questions about what Google does to protect data in its cloud services, like Google Drive.

We are always happy to hear from you. Write to me directly at marsha@zigzagworld.com

{ Comments are closed }

User Interface / Sharing

We have now begun to design and implement the first elements of the user interface for the functions related to sharing content between users. As I have written about earlier, we are integrating Google Drive services into our iOS and Android apps, allowing users to keep their content in their own personal Google Drive accounts. They will then be able to share their content with others through our apps. We developed and tested the protocols for storing and retrieving Google Drive files, and are now working on the user interface elements for signing in and out of Google Drive. As usual, things work differently on iOS and Android. We also found that various built-in user interface elements behave differently on iPhones and iPads. So, as we have done many times before, we are writing custom code to provide a consistent user interface across the various platforms we want to support.

We currently have something acceptable working on iPhones and iPads, and have developed an Android equivalent. Once we have the sign in/out done, we can move on to the design for how to display and interact with a list of the user’s files.

{ Comments are closed }

Google Drive Integration

As I wrote a few weeks ago, we were working on integrating Google Drive into our Tikkun app. We had all of the key capabilities working for the Android version of the app, and were next diving into doing the same for iOS. Since we are relatively new to iOS and Swift programming, we are always on a learning curve as we start the next part of the project there. And, of course, the way that Android/Java accesses Google Drive differs significantly from the way that iOS/Swift does.

In particular, although calls to Google Drive occur asynchronously, they are handled in Android/Java in a way that basically results in things happening in order, without having to do any special programming. In iOS/Swift, the asynchronous nature of the interactions must be accounted for by the programmer. This led to learning how to use PromiseKit, a third-party Swift library for simplifying asynchronous code.

We are almost done now with bringing the iOS app’s functionality up to the same level as the we already had in the Android app. Next up: designing how user files should be represented in the app, and then how to arrange the user interface to simplify the sharing of files.

{ Comments are closed }