I've recently submitted my iOS Quiz app to Apple but noticed that the file size for the app is pretty big (about 150 MB). Users would need to be connected to wifi in order to download it per Apple's rules. My quiz app is set up so users are given 4 choices and shown an image and must guess the correct answer from the image shown to them. How would I minimize the file size for my app so that it isn't so large? Is there a way I can host the images on a server without losing the functionality of my app? I heard of something like Backend Services but know nothing about it. If anyone can guide me in the right direction that would be awesome, thanks!
You can check out a free back end service like Parse, it could do the trick for you, especially because you dont have a lot (besides images I guess) that'll be on the server side.
This also helped me start with using it.
Good luck :)
I'm assuming you have all the quiz data (questions and images) within your app bundle?
You can shrink it next to nothing if you move all your questions and images to a backend server and serve the questions and images (links) using simple JSON Structure.
You can build your own backend (Java/PHP/etc..) or look into using Parse.
use JPEG images whenever possible. PNGs costs more space. Do not place jpeg to xcassets, since they will be converted to PNGs. If your pictures should be transparent - it is better to use Webp or JPNG format.
You may use CloudKit to host your data in a public database. You won't need any backend knowledge to do that. This tutorial will help you understand the basics. WWDC videos covers some more, i suggest you to look at WWDC 2014, Introducing CloudKit and WWDC 2015, CloudKit Tips and Tricks.
Related
please bear with me as I'm not trying to frustrate anyone with inane questions, and I did google search this but I couldn't really find anything recent or helpful.
I am a novice programmer and I am using a classic asp web application. I just enabled the users to upload and download images, but I'm quickly regretting it as it's eating up all of the router bandwidth. I am finding my solution inadequate, so I wanted to start over.
My desire is threefold with this functionality:
Compression. I understand that this is impossible to do BEFORE uploading without some kind of Java/Silverlight/Flash portion of the application to handle uploads, correct? What is the common way most places go about this? Just allow regular file uploads and compress once they are on the server?
Resizing. I want to resize all images before they are uploaded to a reasonable size, instead of just telling users that try and upload huge camera images that they can't upload. I figure I just want to let them upload and have it resize for them before uploading. Does this functionality exist already?
Changing filetype. I want to allow users to upload all image file types but make them .jpg on the server after the upload.
With these three requirements, how hard is it to implement something like this in just pure code and libraries? Would it be better to just use a 3rd party plugin, such as ASPjpeg or ASPupload? Have you encountered something similar, and what was your solution?
Thanks.
Take a look at ASPJpeg and ASPUpload from Persits. We use these components to upload a full size image (can be png even though the library is "ASPJpeg"), resize it to several different sizes we need on our site, then store the resized images on the server in a variety of folders. The ASPUpload component is a little tricky but if you follow their sample code you'll be fine.
I never found a good component for decompressing uploaded zip files and had to write my own, which I've since abandoned. In the end with upload speeds increasing and storage getting so cheap, it started to matter less and less that the files were compressed before being uploaded.
EDIT: Just noticed you mentioned these components in your question. Consider this an endorsement of your idea to use them. :-)
I am currently trying to build a chat application in swift whilst using Firebase for real-time messaging. My only issue is I want users to send images, I want them to have profiles with images but I know Firebase has limited storage (or at least storage per pay tier is low for the number of connections you get)
So I would like to know how to connect up another database and make calls when needed between the two. So when and image is sent in a message, rather than Firebase storing the image, it stores a URL to the image in the other database.
I am under the impression something like AWS S3 is my best bet. any help is appreciated!
This question has been asked before and there are a number of solutions. It's kind of an 'opinion' type question but here are a few options.
View and store images in Firebase
Firebase has a 10Mb capacity, which is adequate for many images. However, if you need larger, they can be easily encoded as base64 and split into chunks.
If you want to go external:
s3 or Filepicker (Filestack) as well as Google provide some options.
Not sure of the overall requirements but obviously you can dig into CloudKit / CoreData and even Dropbox offers an API.
I have zero experience with Box but it may be an option as well.
Each option has it's own API.
In general, you would store a link in a firebase node to the image/object in question. However, the mechanics of that vary wildly as interfacing with CloudKit/CoreData will be different than say Filepicker.
With CoreData you will have to roll your own reference scheme whereas Filepicker you can have an almost direct reference to the file.
Many of these services provide a free or low cost tryouts and you can whip some code up in a manner of a few minutes to test out the functionality to see if it may meet your requirement.
If you need help encoding/decoding, see the answer to this question
Swift2 retrieving images from Firebase
Once you get rolling, if you have issues post some code in another question.
I have an iOS app which has a lot of images and sounds in it, hence the build size is growing rapidly and can no longer fit in the 50MB limit for 3G download. I would like to upload those images and sounds to an online server and download them from the application on demand. Can anyone please recommend some online storage (for example Amazon S3) and give suggestions for best practices about this issue?
Thank you!
I upload my files to an "unlimited site" with Network solutions, however if you don't want to pay for anything like this just upload the photos to photo bucket or something and right click on them and click "Get image address" then use this URL to download the images to your app. (Check to make sure it doesn't violate their terms of use though, I don't know if it does or not!)
As for best practices, I probably use the absolute worst method which is displaying it in a UIWebView off-screen and taking a picture of it using CoreGraphics then saving that picture haha! I'll leave you with this link for a probably better solution to your second half of the question, that being "Best practices": ios store URL images in offline mode(not connected to internet)
I have a client WordPress website that allows users to upload custom artwork from the front end.
I use TDO Mini Forms to create the submission form, but it doesn't seem to have options for file manipulation on upload. As a result, the images are often very large, sometimes in CMYK, and have various other issues.
I've managed the size issue, to some extent, using WP's media settings, but there are two issues that have vexed me:
It doesn't address the CMYK issue (which admittedly happens very rarely, but still prompts a call from the client).
WP doesn't discard the original image, which creates huge backup files.
Is there an extension out there that better manages submitted images? Even if it involves replacing the submission form (TDO Mini Forms works well, but has been unsupported for some time), I'm looking for any solution that meets this need.
IMO, the gold standard would be a WP equivalent to ExpressionEngine's Safecracker + DevDemon's ChannelImages.
Is there anything out there? I can't be the only one looking for this.
As always, any help is greatly appreciated.
ty
Don't know if it's exactly what you need, but this may help you out:
http://www.verot.net/php_class_upload.htm
It's integrated into this plugin I used some months ago for a client:
http://wordpress.org/extend/plugins/photosmash-galleries/
The solution is a plug-in called Imsanity (http://wordpress.org/extend/plugins/imsanity/).
It still doesn't address the CMYK issue, but it does manage the file sizes, which is the more pressing issue.
It also works retroactively, so if you already have large images on your site, you can bulk resize them.
I have a IPad noob question.
Here is the task I am trying to achieve:
I need to build an IPad/IPhone app that will display a lot of images and data. The problem is that this app needs to work offline as well as online. So, the data needs to stored in some way on the IPad.
I am looking for some opinions on techniques/architecture/development.
To provide a bit of background I work mainly in C#.NET and this is my first IPad app. So far I know that I can either create a native app using objective C, or go for an HTML app which later may or may not be converted to a native app.
Furthermore, I am currently testing by creating a simple html page with an image, and trying to cache the image and page so it will work offline. This so far, however is not working as the image or page do not seem to be cached.
EDIT: Does anyone know how much is the caching limit. I believe I have somewhere around 10-15 mbs of images.
I will appreciate any ideas/opinions/resources on this task.
use CoreData to store your images offline Apple CoreData Docs
I am unsure wot you need the online bit for, are you retrieving images off the net or uploading them?