Editing Office files on iOS and Android from OpenStack and other Object Storage Clouds

More and more companies are turning to Object Storage to handle the growing amounts of structured and unstructured data that is corporately generated and consumed.

As companies move to this new storage paradigm IT is struggling  to not only manage, index, and secure the newly migrated / stored data, but also having difficulty with figuring out how they can expose access to users.

Continue reading →

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

SME iOS Cloud File File Manager app now with Touch-ID, Document Provider & Share extensions

The latest iOS SME client app version 3.13 released on the 25th March has been updated with very useful new features, following is a list of some of the main ones:

— Document Provider —

The new Document Provider feature makes SME Cloud available to other 3rd party apps giving easy access to your SME files.

For example, you can now import a file from a mapped SME Cloud into dropbox as follows:

DropBoxImportS

Continue reading →

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Apple Swift provides a disruptive App opportunity for early adopters

Hacker in Work

From our experience a lot of companies at the moment may not consider Swift to be ready for production. Each version of Swift that comes out is not compatible with the previous.

For example Swift 1.2 introduced some very welcome features that our development team started using but subsequently had to remove to build a version that is submittable to the app store.

Aside from this there have been a lot of Xcode bugs and crashes related to using Swift. Some of the recent Xcode versions have been almost unusable and one of them even totally unusable. Swift at the moment seems very much Beta and for early adopters.

However once you get the Swift code to build to a binary there are no compatibility issues and nothing to lose, There’s even some performance to gain as Swift is being developed very much to integrate well with LLVM and by the same person / team that created LLVM.

In our opinion Swift has the productivity of Ruby while at the same time making it easy to implement safe code that doesn’t crash as much as before. In the near future when Swift becomes more mainstream either the cost of implementing a polished app will go down or the expected standard will go up.

The simpler syntax makes it much easier to use certain features which previously were a pain ( ex. completion handlers/blocks ) or even new features ( ex. custom operators ). When you combine them the power is multiplied. Including the time taken debugging bugs that are now avoided with Swift.

The chainTest Swift function below uses a combination of a custom operator ( |> ) and the way functions/blocks are first-class citizens in Swift and can easily be passed around and chained. What the function does is call the “start” function, then on the main thread it creates an activity view ( with a spinner etc ), then with the activity view running it does some work on the global thread, when the work is finished it removes the activity view and calls the “end” function.

func chaintest()
{
start I> main I> startactivity I> global I> doSomeWork I> main I> stopActivity I> end
}

We’d estimate a 4x increase in productivity compared to Objective-C.

Our conclusion is that we’re currently at a place where using Swift provides a window of opportunity for early adopters to compete with the larger less adaptable companies.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Turning your iOS or Android device into a wireless Flash Drive

This blog post title may seem a little strange given that Storage Made Easy promotes the use of secure cloud file share and sync but we understand that there are times when you simply want to bulk move files directly from a laptop or PC to be able to access them on the move.

A little know feature of the free SME iOS and Android Apps is that they have the ability to turn themselves into an FTP Server which can be wirelessly connected to from an FTP client on the same network.

iOS FTP Flash DriveAndroid Wireless Flash Drive

This allows files to be easily uploaded to the App in Bulk on each device.

From a security viewpoint you will still want to secure the files in the event you lost the device or the device is stolen.

On iOS the SME App can be protected by a pin, and the forthcoming release supplemented by fingerprint Touch ID for devices that support it. Also If you turn on the device password for the iOS device then the SME App takes advantage of the encryption features build into iOS and all files are encrypted when the device is ‘locked’ or “at rest”.

On Android the SME App can also be protected by a pin but for additional security users should consider encrypting their device storage. You can read an article now how to do that here.

 

 

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Automating iOS Application Testing Part 1

There are popular frameworks for automating iOS testing like Calabash and Frank but they can only automate your own app which is very limiting. For example you can’t automate pressing the ‘Home’ button, switching to another app, going into airplane mode, rebooting the device, touching anywhere on the screen outside your own app etc

As a concrete example, the new version of the SME iOS client app that we are currently working on implements the Document Provider extension which allows other apps to open an SME document. To automate Picking an SME Document, you’d have to automate the host app which normally you have no control over.

The existing automation testing frameworks don’t provide the required control so a better solution is needed.

Gaining control of your devices

One way of gaining enough control of your testing devices is by jailbreaking them. With a jailbroken device you can SSH into it and run system commands.

To be able to SSH into the device, first install OpenSSH from inside Cydia.

You also need to find the IP address of the jailbroken device by going to Settings/Wi-Fi and touching the name of the wi-fi connection being used.

Then SSH into the device from your computer’s terminal app, for example if the device’s IP address is 192.168.1.23, the following command allows you to SSH into it:

> ssh root@192.168.1.23
> password: alpine

Before you can simulate actions on the device you need to install Activator ( created by Ryan Petrich ) and SimulateTouch ( created by iolate ). To find them just do a search inside Cydia.

Activator allows you to run automation commands like for example:

– Run the SME app or bring it to the foreground if already running:

> activator send com.janats.smestorage

Run the Readdle Documents iPad app:

> activator send com.readdle.ReaddleDocsIPad

Simulate touching the home button:

> activator send libactivator.system.homebutton

To list the commands you can run with activator use the following command:

> activator listeners

SimulateTouch allows you to run the following command to simulate a touch on the screen position with x=100 and y=200:

> stouch touch 100 200

With Activator and SimulateTouch you can automate just about everything but you also need to download the screenshots taken by your device which will be processed on your computer to determine if a test has succeeded.

To take a screenshot use the following command:

> activator send libactivator.system.take-screenshot

The device will save the screenshot image to:

/var/mobile/Media/DCIM/100APPLE

You can look at the contents of that folder with the command:

ls /var/mobile/Media/DCIM/100APPLE

You should see images with names like “IMG_0260.PNG”, the index will increment for each screenshot taken.

To retrieve the image to your computer you can use SCP as follows:

scp root@192.168.1.23:/var/mobile/Media/DCIM/100APPLE/IMG_0260.PNG ./

You should then have the screenshot available locally.

Now we’re equipped with the tools we need for the implementation of an automated testing framework.

To where your appetites for the next part of this article please find below a short video of the automated visual testing framework that has been created to easily test iOS Apps.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Using Storage Made Easy With BoxCryptor On iOS to securely encrypt files on device

BoxCryptor provides a virtual hard disk that encrypts files within a storage account using using 256-bit AES encryption. BoxCryptor encrypts individual files, not an entire volume or container.

BoxCryptor encrypts and decrypts files locally, and it doesn’t transmit passwords to third parties. As a result files remain unreadable to outsiders even if hackers manage to steal passwords as they need to also break the file encryption.

How is this different to SME provided encryption? SME provides streamed encryption which occurs over the https protocol. Users choose a private key to encrypt files on upload to their underlying cloud and SME does not store this key on the SME platform.

Like BoxCryptor Storage Made Easy also uses AES-256 encryption. We use the Rijndael cipher, with Cipher Block Chaining (CBC) where the block size is 16 bytes..

Storage Made Easy also provides a file decryption tool that is available for Mac, Windows and Linux for local decryption of files downloaded direct from a Storage provider rather than via SME tool or client.

BoxCryptor recently updated their iOS App and although the App supports several storage clouds, as SME supports 35+ storage clouds and provides access into them using WebDav, BoxCryptor can be used in conjunction with SME to create and access encrypted folders with files  on any cloud SME supports.

The pictorial walkthrough below shows how to achieve this.

photo 1 photo 2

photo 3 photo 4

photo 5  photo 2

photo 3 photo 4 photo 5

BoxCryptor also supports Mac and Windows and can be used with SME Webdav or the Cloud Drive Apps. There is also a BoxCryptor Android App which can also similarly used with SME WebDav.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather