iPhone Development

Featured iPhone Development Resources,iOS UI Controls,iPad,iPhone,Objective-C Last year I mentioned a pretty cool component providing a stylish interface for applying for photo filters. Here’s a nice library for working with the c...
Featured iPhone Development Resources,iOS UI Controls,iPad,iPhone,Objective-C Last year I mentioned a pretty cool component providing a stylish interface for applying for photo filters. Here’s a nice library for working with the camera and photos called iOS-NBUKit from CyberAgent. iOS-NBUKit provides a number of components for working with the camera and images providing a camera view that can be embedded within other views, a gallery view, an image cropper, an asset manager, a filter selection view, and a custom picker. Here are a few images from the readme showing NBUKit in action: You can find iOS-NBUKit on Github here, and you can find the documentation here. A nice component for working with photos. Be the first to comment... Related Posts:Drop In iOS Photo Picker Replacement That Allows User To Choose Photos From Different Online AlbumsiOS UI Control For Easily Creating A Paged Gallery View With Built In Asynchronous Image DownloadingOpen Source iOS UI Component Providing Colorful Customizable Circular Progress ViewsOpen Source: High Speed Interactive iOS Grid View ComponentTutorial: How To Make A Scrolling Photo Gallery With UICollectionView Original article: Component For Working With Photos Providing A Camera View, Gallery, Image Filter View, And More©2013 iOS App Dev Libraries, Controls, Tutorials, Examples and Tools. All Rights Reserved.
about 1 hour ago
Eric Dyck is the co-founder and VP of Marketing of Tap for Tap. He’s also the host of a video podcast series called Tap Your App where he first befriended Corona Geek, Charles McKeever. It was that meeting, that led to a newly-launched p...
Eric Dyck is the co-founder and VP of Marketing of Tap for Tap. He’s also the host of a video podcast series called Tap Your App where he first befriended Corona Geek, Charles McKeever. It was that meeting, that led to a newly-launched partnership between Tap for Tap and Corona Labs. Tap for Tap is very excited to be partnered with Corona Labs and even more excited to hear from Corona Developers as they explore the list of excellent 3rd party services now available. We know what Corona Labs is all about: Helping developers build high quality, cross-platform mobile apps in a fraction of the time it would take to build from scratch. So what is Tap for Tap all about? Simply put, Tap for Tap is here to help Android and iOS developers get users and make money. Corona helps you build your app and Tap for Tap helps you build your app business. We are a cross-promotion and monetization network for mobile apps and our services include a tap exchange, an ad network, a self promotion tool and a paid promotion network, all in one easy to use platform. Corona developers can sign up here for a Tap for Tap account and use our Corona Plugin. Then choose how you want to show ads in your app; we offer banners, interstitials and app walls. Next, you can select what kind of ads you’d like to show and how you’d like to be paid using our Earning Preference Slider. Choose “Get Users” if you’d like to participate in the Tap Exchange. Here you will show ads for other developers and every time you generate a tap or a click on one of their ads from one of your users, you will be paid back by getting a tap on an ad for your app on our network. This user exchange allows you to grow engagement with your app, scaling your installs at no cost. If you’re more interested in making ad revenue from the ads you show, just select “Make Money” on the Earning Preference Slider and you’ll start showing paid ads and earn a share of any revenue generated. You can select any mix of get users/make money that suits your app business. If you have more than one app, be sure to take advantage of our Self Promotion tool which allows you to choose what percentage of your traffic you’d like to use to promote your own app. Tap for Tap also offers a great Paid Promotion network where you can reinvest your earnings to buy traffic on a CPC or, in some cases, CPI basis to grow your app’s user base. If you’re interested in seeing our network in action. Take a look at Corona Developer, MonkeyBin Studios’ game MindFeud. They actually built their own plugin using Corona Enterprise several months ago and have been rocking on Tap for Tap ever since. Don’t hesitate to reach out if you have any questions. Looking forward to hearing about your apps and helping you build your app business!
about 15 hours ago
A few months ago, I talked about networking 2.0, but what I didn’t mention was that the driving force behind these improvements was the Corona community’s own Bob Dickinson. For awhile, Bob was pretty vocal about some of the ...
A few months ago, I talked about networking 2.0, but what I didn’t mention was that the driving force behind these improvements was the Corona community’s own Bob Dickinson. For awhile, Bob was pretty vocal about some of the shortcomings of the old network 1.0 stack, and made that clear in his bug reports where he expressed his frustration. He’d say things that were brutal like “Network request/download support is only suitable for toy apps,” but balance those comments with constructive thoughts about improvements he’d like to see. Over an e-mail exchange, it turns out that Bob really wanted to make something happen: What I would like to do is volunteer to rework the Corona networking APIs (specifically network.request and network.download) in order to both address the specific open bugs, and also to extend the APIs and make them more robust, as outlined in 14023. I think that this can be done without changing the API definitions (so the new implementations would be fully backward compatible and pass any current unit tests). So after several conversations, we agreed to give it a go! One of my primary concerns was the API, and Bob was (thankfully) patient as I poured over every detail of the API changes. We’ve had several dozens of exchanges just on the API. We covered a bunch of things including error handling, distinguishing between text/binary in responses, and minutiae like how download file paths should be specified. Here’s a typical example of the kind of exchange we had. In this one, we decided on the name for a new API to cancel http requests: I went back and forth. I picked cancelRequest( ) because, unlike the timer module, the network module has a couple of methods that deal with things that you might think are cancelable and that are not requests (the network status functions). But I’m fine either way. I have slight preference for the more succinct “network.cancel()”, so let’s go with that. Then came development. Bob rewrote the Android implementation because a newer HttpURLConnection had become available since the time at which we wrote the original. He then ported over our existing iOS, Mac, and Windows implementations. Given the number of platforms involved, it was definitely a significant undertaking and a Herculean effort by Bob. I could go on about all the technical details but long story short, we all have a richer set of http APIs. Thanks Bob for all your hard work, generosity, and dedication. Corona is that much better for it!
1 day ago
During Monday’s Hangout Ed Maurina showed off a sample app he created to demonstrate how device memory is affected when objects are set to nil at various stages of Storyboard development. His app shows memory usage in an empty scen...
During Monday’s Hangout Ed Maurina showed off a sample app he created to demonstrate how device memory is affected when objects are set to nil at various stages of Storyboard development. His app shows memory usage in an empty scene, with objects nilled or not, object listeners nilled or not, etc. You can download the code from his Roaming Gamer website. Thanks Ed! Watch the full Hangout for more geek fun. Thank you for watching, we’ll see you on next week’s Corona Geek hangout! Remember To Subscribe Download the Corona Geek podcast on iTunes Listen to Corona Geek on Stitcher Subscribe to Corona Geek on YouTube
1 day ago
Today, Corona Labs announced that Corona Plugins — code named “Project Gluon” — are live and available to Corona SDK Pro subscribers using Daily Build #1115 and above. One of the new plugins handles the compression and un-com...
Today, Corona Labs announced that Corona Plugins — code named “Project Gluon” — are live and available to Corona SDK Pro subscribers using Daily Build #1115 and above. One of the new plugins handles the compression and un-compression of files using the popular zip algorithm. For anybody who’s unfamiliar with zip files, the most common usage is when you need to group several related files into a “package” so it’s easier to move them around and share them with others. For example, if you contract a set of artwork from a designer, he/she can compress them into a zip archive and send them via email, Dropbox, etc. All of the artwork will be contained in that one file with the .zip extension, and when you open it locally, the file will “unzip” and all of the files will be available to you, exactly as the designer intended. Another use of zip files is to compress one large file into a smaller overall .zip file. The format and type of the original file will dictate the amount of compression achieved, but in virtually every instance, you’ll save valuable storage space. Why is this important to mobile app developers? For one, you gain the ability to expand your app’s contents. You can create a zip file containing expansion art and sounds, download it into your app, unzip it, and use those assets. Secondly, you can now produce zip files which you can upload to web servers for distribution. In today’s tutorial, let’s examine how to download a zip file from a web server, unzip the contents, and show a list of the files within. Using Corona Plugins Corona Plugins are “managed” from the build.settings file in your core project directory. This makes it easy to add just the specific plugins you need for an app, ultimately resulting in a lighter compiled binary. To use a plugin, simply add the plugins table within settings and configure the zip plugin within: settings = { orientation = { default = "portrait", supported = { "portrait", "portraitUpsideDown" }, }, plugins = { ["plugin.zip"] = { publisherId = "com.coronalabs", }, }, } Next, in your main project code, you must require the plugin, similar to how you’d require a core Corona library or external Lua module. local zip = require( "plugin.zip" ) That’s it! Now you’re ready to use the zip plugin. Note that when you run a project in the Corona Simulator that requires a plugin, you’ll be prompted to download the plugin; this only happens once, when you first use the plugin. Implementing .zip in Code Like many API calls in Corona, a callback function is required so that you can determine when the process is complete and then take the appropriate action. local function zipListener( event ) if ( event.isError ) then print( "Unzip error" ) else print( "event.name:" .. event.name ) print( "event.type:" .. event.type ) if ( event.response and type(event.response) == "table" ) then for i = 1, #event.response do print( event.response[i] ) end end end end Now, let’s use use the network.download API call to retrieve the zip file from a remote server and, in its callback listener, initiate the unzip process. The callback function will list all files that are successfully uncompressed. local function networkListener( event ) if ( event.isError ) then print( "Network error - download failed" ) elseif ( event.phase == "began" ) then print( "Progress Phase: began" ) elseif ( event.phase == "ended" ) then if ( math.floor(event.status/100) > 3 ) then print( "Network error - download failed", event.status ) --NOTE: 404 errors (file not found) is actually a successful return, --though you did not get a file, so trap for that else local options = {
3 days ago
@espresso 100% agree. Sasha Frere-Jones' take on the album for The New Yorker is a good read about the oddity of it.
@espresso 100% agree. Sasha Frere-Jones' take on the album for The New Yorker is a good read about the oddity of it.
3 days ago
Today, I’m happy to announce our first batch of Corona Plugin partners: Sponsorpay Tap for Tap inneractive Green Throttle Carrot It’s great partners like these that enable Corona developers to access the best new functional...
Today, I’m happy to announce our first batch of Corona Plugin partners: Sponsorpay Tap for Tap inneractive Green Throttle Carrot It’s great partners like these that enable Corona developers to access the best new functionality and 3rd party services. In particular, today’s batch span a wide variety of services from app advertising to cross-promotion and value-exchange ads, from social campaigns to game controllers. You can see more information at the Corona Plugin Directory. You’ll notice a “Docs” link below each partner that’s got all the technical docs you’ll need to use the plugin in your app. In the coming days, you will see more info from these partners about their services and why you should use them. Just keep in mind that, for now, you need access to daily builds to use these plugins. This is just the first wave. We have more partners coming in the next few weeks, adding to the growing list of additional features and services you’ll want to use in your apps. As you can see, Corona plugins are going to play an increasingly important role in your apps. Corona core gets lighter Another things that is happening this week is that the core Corona engine is about to get lighter. Last week, I talked about our plans to move certain services into plugins that currently reside in the core Corona engine. That move is happening this week. In tomorrow’s daily build (after 1115), the following services will be moved into plugins: iAds: iOS InMobi: iOS + Android Inneractive: Android This will make the core even smaller than it already is. We’ll also be rolling out a new “Plugins” section in our daily build docs where you can get details on the ‘build.settings’ changes needed to use those plugins in your device builds. Again, this will start in tomorrow’s daily builds. Plugins for Enterprise Two final notes for Corona Enterprise users. First, we plan to make plugin binaries available to you soon. These plugins will probably be available as a separate download. That’s because plugins will generally be the same across daily builds. Second, if you are using Corona Enterprise and you require InMobi or inneractive, the corresponding plugin binaries will not be available immediately. So if you use those services, stay on 1115 or earlier for now. These will be available in the separate download I mentioned above. * * * We’re going to have more plugin announcements in the coming weeks, but after Memorial Day, what I’d like to get back to in the weekly updates is more eye candy. With that in mind, if you have a favorite filter effect, let me know! Oh, and if you happen to be in the Big Apple today, we’re exhibiting at AppNation, hosting a panel on app monetization, and also crashing the Corona NYC meetup to share the latest and greatest.
3 days ago
In this tutorial I will explain how local notifications can be performed in iOS application. Here there’s three important steps: 1. Create a new observer to listen for the notification (event) to happen. 2. Post the n...
In this tutorial I will explain how local notifications can be performed in iOS application. Here there’s three important steps: 1. Create a new observer to listen for the notification (event) to happen. 2. Post the notification when our event happens. 3. Remove the observer when we no longer need it. From apple documentation, NSNotification objects encapsulate information so that it can be broadcast to other objects by an NSNotificationCenter object. An NSNotification object (referred to as a notification) contains a name, an object, and an optional dictionary. The name is a tag identifying the notification. The object is any object that the poster of the notification wants to send to observers of that notification (typically, it is the object that posted the notification). The dictionary stores other related objects, if any. NSNotification objects are immutable objects. NSNotificationCenter object (or simply, notification centre) provides a mechanism for broadcasting information within a program. An NSNotificationCenter object is essentially a notification dispatch table. Objects register with a notification centre to receive notifications (NSNotification objects) using the addObserver:selector:name:object: or addObserverForName:object:queue:usingBlock: methods. Each invocation of this method specifies a set of notifications. Therefore, objects may register as observers of different notification sets by calling these methods several times. Each running Cocoa program has a default notification centre. You typically don’t create your own. An NSNotificationCenter object can deliver notifications only within a single program. If you want to post a notification to other processes or receive notifications from other processes, use an instance of NSDistributedNotificationCenter. We can create a notification object with either of the following class methods + (id)notificationWithName:(NSString *)aName object:(id)anObject + (id)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)userInfo Here first method Returns a new notification object with a specified name and object. Name is the new notification name and object is the object for new notification. And the second method returns a notification object with a specified name, object, and user information. The user information dictionary for the new notification. May be nil. However, you don’t usually create your own notifications directly. The NSNotificationCenter methods will take care of that. Following methods explain the basis of observing the notification. - (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender - (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block As per the documentation this method adds an entry to the receiver’s dispatch table with an observer, a notification selector and optional criteria: notification name and sender. Second method adds an entry to the receiver’s dispatch table with a notification queue and a block to add to the queue, and optional criteria: notification name and sender. The parameter “block” will be executed when notification is successfully posted. If a given notification triggers more than one observer block, the blocks may all be executed concurrently with respect to one another (but on their given queue or on the current thread).The following example shows how you can register to receive locale change notifications. NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; NSOperationQueue *mainQueue = [NSOperationQueue mainQueue]; [center addObserverForName:NSCurrentLocaleDidChangeNotification object:nil
3 days ago
Featured iPhone Development Resources Some time ago I mentioned the excellent free augmented reality framework from Qualcomm called Vuforia. Here’s an interesting example from Vivien Cormier called the iOS tangible detector for de...
Featured iPhone Development Resources Some time ago I mentioned the excellent free augmented reality framework from Qualcomm called Vuforia. Here’s an interesting example from Vivien Cormier called the iOS tangible detector for detecting objects that are placed on the screen.  The library does this by detecting the distance between three points on the object, and making calculations about the size, and angle of the object based on the location of those points. Here’s a video of the Tangible Detector in action: You can find the iOSTangibleDetector on Github here. A fun little library for detecting objects sitting on the iPad screen. Be the first to comment... Related Posts:Open Source iOS Library For Detecting When A User Is Taking A ScreenshotThe Apple iPad – Is it just a big iPhone?Open Source iOS Component Allowing You To Quickly Create A Customizable More Apps Listing ViewTesting Out iPad Code With An iPhone or iPod TouchOpen Source iOS Library Providing Quick And Easy Encryption Of Any NSCoding Compatible Object Original article: Example: Detecting Tangible Objects On The iPad Screen©2013 iOS App Dev Libraries, Controls, Tutorials, Examples and Tools. All Rights Reserved.
3 days ago
This week we hung out with Ed Maurina, Gerald Bailey, Jesse Warden, Matthew Chapman, and Richard Harris to discuss memory management in Corona SDK. Ed did an excellent job of explaining the sample app he created after one of our previous...
This week we hung out with Ed Maurina, Gerald Bailey, Jesse Warden, Matthew Chapman, and Richard Harris to discuss memory management in Corona SDK. Ed did an excellent job of explaining the sample app he created after one of our previous Hangouts where we discussed Storyboard. His app demonstrates how memory is affected when objects are set to nil at various stages of development. Ed agree to post his code on GitHub, so we’ll post a link to his code once that is available. We also talked about the announcements at Google IO, the ongoing Dilbert contest, and COPPA Privacy Policies. Corona Labs T-Shirt Winner Congratulations to Theo Rushin, Jr. for winning this week’s Corona Labs’ t-shirt. For your chance to win, follow Corona Geek on Twitter and Facebook, and complete the Corona Geek giveaway form. Thank you for watching, we’ll see you on next week’s Corona Geek hangout! Remember To Subscribe Download the Corona Geek podcast on iTunes Listen to Corona Geek on Stitcher Subscribe to Corona Geek on YouTube
3 days ago