5 Replies Latest reply on May 24, 2012 3:13 PM by tech_liaison

    Image storage on FM Go 12

    PeterWindle

      Hello all, I am looking at developing a a few solutions where the FileMaker file will be copied to an iOS device (not hosted).

       

      The solutions would have lots of images.

       

      I would really love it if the images could be stored external to the FileMaker file, both on the "desktop" version and the iOS version.

       

      There in-lies the problem, on iOS, images can not be stored externally, however... it seems to me that this is something that FileMaker may indeed offer as a solution in the near future...?


      I know this is pure speculation, but it would be nice to get a 'heads up' on this one.

       

      What I don't want to do is invest time into creating scripts that set the size of the image when inserting an image and then later discover (maybe in a later version) that I could store hi-res images on the iOS device, which would mean then re-inserting or copying the images into appropriate again.

       

      Yes, I understand that I can store the image INSIDE the FileMaker file, but this is not ideal for backup situations, remember, these solutions will be 'stnad-alone', not hosted.

       

      Any suggestions, thoughts, preminitions?

       

      ;-)

        • 1. Re: Image storage on FM Go 12
          datastride

          Peter,

           

          Might it make sense to store the images via Remote Containers or SuperContainer in a separate file (database) that is hosted by FileMaker Server. Then in your solution that you intend to copy to iOS, access the images via a webviewer?

          • 2. Re: Image storage on FM Go 12
            PeterWindle

            Thanks Morgan, I like the idea, but getting that to happen would be a task, to say the least -well, for one solution it would be (a few thousand users each with anything between 50 and 5000 images)

             

            This would also still require the iOS device to have internet connection to view the images, which may not always be available to all users.

            • 3. Re: Image storage on FM Go 12
              tech_liaison

              Hi Peter: I guess I'm a little confused by your requirements. When you refer to creating scripts that set the size of the image and such, are you planning to do this on a desktop, and the images in FM Go on the device will be view only? Are you going to allow users to add images to the database on the device using the camera or by selecting from the picture library? By backup, do you mean backing up the images on the back-end, or backing them up when the user backs up the iOS device using iTunes?

               

              And by "externally stored," do you mean stored externally but local to the device, or fed to the device from the web? Depending on exactly what it is you're trying to do, FileMaker Go gives you at least a couple different options for dealing with external images. First, if you want to feed "externally stored" images to the database without hosting them on FileMaker server, then you can use web viewer objects instead of container fields to display the images.

               

              This of course means that you'll need to serve the images from a web server. The filename of each image will need to be stored in each associated record, and this also means that the image filenames will need to be unqiue so you don't display the wrong image on the wrong record. The web viewer would then use the filename in a calculation to dynamically build the URL to the image. Your users would have limited interactivity with the image in this case, basically only being able to double-tap the image in the web viewer in order to copy it to the iOS clipboard.

               

              You could also use the new Insert From URL script step to insert web served images into container fields in the mobile solution. For instance, you can deploy the solution containing only thumbnail images, and when the user clicks one, it executes Insert From URL to bring the full image in from the web (using a dynamic URL scheme as described above for web viewers). This would give the iOS the user the image within a container field on the device, with the ability to print, export, email, and transfer the image to their local picture library as they can with any image stored in FMP container fields.

               

              The solution you use really depends on what it is you want your users to be able to do with the images in FileMaker Go.  If you can describe the problem in terms of what you expect the desired user experience to be, that may help find the right solution for what you want to do. HTH.

              • 4. Re: Image storage on FM Go 12
                PeterWindle

                Hi Peter: I guess I'm a little confused by your requirements. When you refer to creating scripts that set the size of the image and such, are you planning to do this on a desktop, and the images in FM Go on the device will be view only?

                >>That's the most likely scenario

                 

                Are you going to allow users to add images to the database on the device using the camera or by selecting from the picture library?

                >> both would be ideal

                 

                By backup, do you mean backing up the images on the back-end, or backing them up when the user backs up the iOS device using iTunes?

                >> not sure what you mean by the back-end, but yes, backing up the iOS device with hundreds of images inside the FileMaker file is my concern.

                 

                And by "externally stored," do you mean stored externally but local to the device,

                >> yes

                 

                or fed to the device from the web? Depending on exactly what it is you're trying to do, FileMaker Go gives you at least a couple different options for dealing with external images. First, if you want to feed "externally stored" images to the database without hosting them on FileMaker server, then you can use web viewer objects instead of container fields to display the images.

                >> internet access will not always be avaiable to all users.

                 

                This of course means that you'll need to serve the images from a web server. The filename of each image will need to be stored in each associated record, and this also means that the image filenames will need to be unqiue so you don't display the wrong image on the wrong record. The web viewer would then use the filename in a calculation to dynamically build the URL to the image. Your users would have limited interactivity with the image in this case, basically only being able to double-tap the image in the web viewer in order to copy it to the iOS clipboard.

                 

                You could also use the new Insert From URL script step to insert web served images into container fields in the mobile solution. For instance, you can deploy the solution containing only thumbnail images, and when the user clicks one, it executes Insert From URL to bring the full image in from the web (using a dynamic URL scheme as described above for web viewers). This would give the iOS the user the image within a container field on the device, with the ability to print, export, email, and transfer the image to their local picture library as they can with any image stored in FMP container fields.

                 

                The solution you use really depends on what it is you want your users to be able to do with the images in FileMaker Go.  If you can describe the problem in terms of what you expect the desired user experience to be, that may help find the right solution for what you want to do. HTH.

                >> think of it in terms of a product database, the product images need to be available on the iOS device, even if the user has no internet connection.

                • 5. Re: Image storage on FM Go 12
                  tech_liaison

                  Okay then, so it sounds like you're going to have a stock of images that are prepared on the desktop, loaded up in a FileMaker database and then deployed to FileMaker Go clients. I don't think you'll be worried about the stock of images, since they're already on the desktop and being backed up by that system. So what it sounds like your worried about, is the delta of the images the user may change in the deployed database?

                   

                  Even if FM Go supported external storage for container fields, the images would still be stored within FM Go's "sandbox," so they would be no more backed up than the deployed database itself. So what we're really talking about is a synchronization process, and there's absolutely no way to synchronize those changes without some sort of connection at some point that will facilitate getting the changes back to the original image warehouse. There are basically three ways to synchronize data between a deployed standalone FM Go database, and the back-end/back-office/hosted "warehouse" database:

                   

                  1. Manually Submit the Changes: at the end of the day or by whatever schedule your org determines, the mobile users can e-mail their local database containing changes back to the mothership, or connect their device to iTunes and manually pull a copy of the database off the device and submit it by some other process.
                  2. Email Changes as Needed: add a script trigger to the container field which will email images back to the mothership whenever the user changes one. This assumes that image changes are all you care about. I'm not 100% sure, but I believe the emails would queue up on the device until they're able to be sent.
                  3. Sync to Host When a Network is Present: I think this is the most robust and least cumbersome of the options. When the user is back in wifi range, they simply tap, "Sync Now," and the deployed solution connects to FM Server and syncs the changed records.

                   

                  You might want to watch the webinar about FileMaker Go data synchronization that's available in the Technical Resource Center > Web Seminars space. You'll also want to check out GoZync from SeedCode and Geist Interactive; it's a framework that's based on the techniques discussed in the webinar, which you can plug into your own solutions to quickly implement data synchronization. HTH.