Tag: file sharing

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 }

Deeper into Google Drive

This week I want to update you on our efforts in integrating Google Drive into our Tikkun app. As I wrote last month, we decided that Google Drive provided the best solution at present for giving iOS and Android users a way to share content with each other directly through our app. It will also give users a way to sync their own content and app preferences across multiple devices. In order to make sharing and syncing “just work” for our app, we needed to get a deep understanding of how Google Drive operates, and then how to program the desired functionality. So we have been doing a lot of reading and experimenting, learning how to securely log in and out of Google Drive, create, find or delete a particular folder or file, how to use our own custom file types, and so on. (For those with a technical background, we are using the Google Drive REST API.) We have been able to log in and out of Google Drive on both the iOS and Android versions of our app. We have so far only tested out the various file and folder operations on Android. We will soon move on to doing the same operations of iOS.

Another critical aspect of integrating Google Drive into our app is handling any error conditions that might occur. In particular, the app will need to respond reasonably if a file or folder that is requested is not available. This could be because the item was deleted, or because there is no network connection. Further, if a network connection is metered (i.e., it uses data on a data plan), the app should not make that connection without the explicit permission from the user.

Once we have the level of control that we need in both iOS and Android, we will start looking at how to present information about the user’s content on various sizes of screens. We also need to refine exactly what data we need to store for the user, and how best to organize it. User data management is at the core of what will make the app really useful, and it will, undoubtedly, take some time to get it right.

{ Comments are closed }

File sharing & Google Drive

As I wrote last week, we are working on how to support users in sharing their study materials with one another, regardless of whether they have iOS or Android devices. I want to present some additional background about our goals and our approach. First, we want to enable the sharing of study materials entirely through the apps we are building, and in as simple a manner as possible. We do not want users to have to use their desktop or laptop computers as intermediary devices, or have to switch to email, another app, or a web page to share something. This means that the file sharing protocols must all be accessible programmatically from within our apps. We also want users to fully own and manage their study materials, without us keeping any copies of them or other related data on some server that we manage. Each user’s data should be entirely under their own control, so they can be comfortable that their data is not being used in any unknown ways or for any purposes other than what they want. Additionally, sharing can be useful to users by themselves. Users who own more than one mobile device — for example, an iPad and an Android phone — may want to use our apps on each device, and have all of their study materials synced between those different devices. And whenever users upgrade to new mobile devices, they need a straightforward way to transfer all of their study materials from the old device to the new one.

With these goals in mind, we settled on Google Drive as the most promising technology to use. Google Drive also stood out because of the continuing surge in the use of Chromebooks and related Google services by students in elementary and secondary schools, especially in the United States. This is important since we are looking to have our apps used by b’nai mitzvah students and their tutors. If students are already familiar with Google services like Google Drive, it will make using our apps that much more straightforward for them. A recent article in the New York Times noted that, “In 2016, Chromebooks accounted for 58 percent of mobile devices shipped to primary and secondary schools in the United States,” and that “more than half the nation’s primary- and secondary-school students — more than 30 million children — use Google education apps like Gmail and Docs.” Also, Google Drive is free for anyone to use, with generous data limits.

So we are now deep into the technical details of accessing the Google Drive functionality within our Android and iOS apps. This is actually more complicated in Android than in iOS, because in iOS, there is only one way to do things. In Android, there are multiple supporting technologies, and it requires some extra effort to determine which approach will give us the right services for our needs. And, of course, newer versions of Android work differently than older versions, so that also has to be taken into account. Further, on Android, a user is basically already signed in to Google, so we want to take advantage of that and streamline the process for the user. That means doing more behind the scenes programming to make everything “just happen.” And that’s where we are this week.

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

{ Comments are closed }