Developers band together to fight Lodsys if necessary

lodsysAfter Lodsys started sending threatening letters to developers, Apple took some time to issue a statement to developers hit by the notices which seemed to provide cover for them. Unfortunately, nothing in Apple’s letter to developers said, “We’ll pick up the tab for any legal costs you incur.” So a band of developers have decided to pool their resources and secure counsel to help defend any legal action should Lodsys actually file suit against any of them.

I was informed that Villain and Iconfactory are two of the shops banding together, and I was asked to help spread the word. While I can agree that hiring a lawyer to deal with a lawsuit is prudent advice, I feel it is worth noting that no action has yet been taken in court, and Apple seems locked in a staring contest with Lodsys. One blink and they are toast. Then again, I am not a lawyer.

Villain CEO Dane Baker asked to relay this message: “Villain received an infringement notice and we disagree with it. We’re asking all iOS developers who received similar notices from Lodsys to get in touch with me to discuss pooling resources in the event of a lawsuit. Any interested developers can e-mail me at [email protected].”

I applaud the effort and hope they never have to use any funds to fight anyone in court; let’s hope they can leave it to Apple, with its vast coffers and crack legal team, to defend its licenses instead.

Developers band together to fight Lodsys if necessary originally appeared on TUAW on Wed, 25 May 2011 01:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Android App Development: Calling Web Services

One of the most common functionalities required in mobile applications is to call a web service to retrieve data. This process involves requesting the web service with parameters, receiving the response and parsing it to obtain data.
Today the most common web services types are SOAP and REST. Android does not provide a built in SOAP client, there are many third party libraries that can be used, but we’ll see how to call a SOAP web service with native android APIs.

Requesting SOAP web service:

Before proceeding to the code, let’s take a look at the SOAP structure:

A soap request can be something like this:

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.w3schools.com/GetItems"

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
  <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>
<soap:Body>
  <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body></soap:Envelope>

The SOAP request/response is sent as a SOAP Envelope which consists of a SOAP Header and a SOAP Body.

  1. SOAP Header: optional component of the envelop, contains application specific information, such as authentication.
  2. SOAP Body: the actual message sent to/received from the service.
  3. The header can contain a SOAP Action which identifies the desired function to be called by the service.

Calling the service:

To call the SOAP web service you have to do the following:
First: construct the SOAP envelope manually like this:

String envelope="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"+
  "<soap:Body>"+
    "<GetItems xmlns=\"http://tempuri.org/\">"+
      "<startDate>%s</ startDate>"+
      "<getAll>%s</getAll>"+
    "</Items>"+
  "</soap:Body>"+
"</soap:Envelope>";

where %s are place holders where you substitute request parameters in like this

String requestEnvelope=String.format(envelope, "10-5-2011","true");

Second: call the web service like this:
Second: call the web service like this:

String CallWebService(String url,
    String soapAction,
   String envelope)  {
  final DefaultHttpClient httpClient=new DefaultHttpClient();
  // request parameters
  HttpParams params = httpClient.getParams();
     HttpConnectionParams.setConnectionTimeout(params, 10000);
     HttpConnectionParams.setSoTimeout(params, 15000);
     // set parameter
  HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), true);

  // POST the envelope
  HttpPost httppost = new HttpPost(url);
  // add headers
     httppost.setHeader("soapaction", soapAction);
     httppost.setHeader("Content-Type", "text/xml; charset=utf-8");

     String responseString="";
     try {

      // the entity holds the request
   HttpEntity entity = new StringEntity(envelope);
   httppost.setEntity(entity);

   // Response handler
   ResponseHandler<string> rh=new ResponseHandler<string>() {
    // invoked when client receives response
    public String handleResponse(HttpResponse response)
      throws ClientProtocolException, IOException {

     // get response entity
     HttpEntity entity = response.getEntity();

     // read the response as byte array
           StringBuffer out = new StringBuffer();
           byte[] b = EntityUtils.toByteArray(entity);

           // write the response byte array to a string buffer
           out.append(new String(b, 0, b.length));
           return out.toString();
    }
   };

   responseString=httpClient.execute(httppost, rh); 

  }
     catch (Exception e) {
      Log.v("exception", e.toString());
  }

     // close the connection
  httpClient.getConnectionManager().shutdown();
  return responseString;
 }

After calling this function, you will have the response as a String, something like this:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetItemsResponse xmlns="http://tempuri.org/">
      <GetItemsResult>

        <Items>
          <Item>
            <name>string</name>
            <description>string</ description >
          </iPhoneCategory>
          <iPhoneCategory>
            <name>string</name>
            <description>string</ description >
          </ Item >
        </Items>
      </GetItemsResult>
    </ GetItemsResponse >
  </soap:Body>
</soap:Envelope>

This response needs to be parsed to extract the data.

Requesting REST web service:

REST web services are much simpler, you request the service by calling a URL with the parameters. like this

http://example.com/resources/getitems

an example of calling a REST web service:

String callWebErvice(String serviceURL){
		// http get client
        	HttpClient client=new DefaultHttpClient();
        	HttpGet getRequest=new HttpGet();

        	try {
        		// construct a URI object
				getRequest.setURI(new URI(serviceURL));
			} catch (URISyntaxException e) {
				Log.e("URISyntaxException", e.toString());
			}

			// buffer reader to read the response
        	BufferedReader in=null;
        	// the service response
        	HttpResponse response=null;
			try {
				// execute the request
				response = client.execute(getRequest);
			} catch (ClientProtocolException e) {
				Log.e("ClientProtocolException", e.toString());
			} catch (IOException e) {
				Log.e("IO exception", e.toString());
			}
        	try {
				in=new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
			} catch (IllegalStateException e) {
				Log.e("IllegalStateException", e.toString());
			} catch (IOException e) {
				Log.e("IO exception", e.toString());
			}
        	StringBuffer buff=new StringBuffer("");
        	String line="";
        	try {
				while((line=in.readLine())!=null)
				{
					buff.append(line);
				}
			} catch (IOException e) {
				Log.e("IO exception", e.toString());
				return e.getMessage();
			}

        	try {
				in.close();
			} catch (IOException e) {
				Log.e("IO exception", e.toString());
			}
        	// response, need to be parsed
        	return buff.toString();
	}

 

Connecting to a web service over a Secure Sockets Layer (SSL): protocol:

Android default HttpClinet does not support SSL connections, so if you have a secured web service, you need to connect to it via javax.net.ssl.HttpsURLConnection.
if you want to call a SSL SOAP web service:

String CallWebService(String url,
			 String soapAction,
			String envelope) throws IOException  {
		URL address=new URL(url);
		URLConnection connection=address.openConnection();
		HttpsURLConnection post=(HttpsURLConnection)connection;
		post.setDoInput(true);
		post.setDoOutput(true);
		post.setRequestMethod("POST");
		post.setRequestProperty("SOAPAction", soapAction);
		post.setRequestProperty( "Content-type", "text/xml; charset=utf-8" );
		post.setRequestProperty( "Content-Length", String.valueOf(envelope.length()));
		post.setReadTimeout(4000);

		OutputStream outStream=post.getOutputStream();
		Writer out=new OutputStreamWriter(outStream);
		out.write(envelope);
		out.flush();
		out.close();

		InputStream inStream = post.getInputStream();
		BufferedInputStream in = new BufferedInputStream(inStream,4);
		StringBuffer buffer=new StringBuffer();
		// read 4 bytes a time
		byte[] buffArray=new byte[4];
		int c=0;
			while((c=in.read(buffArray))!=-1){
				for(int i=0;i<c;i++)
					buffer.append((char)buffArray[i]);
			}

			return buffer.toString();
	}

In this post we saw how to request a web service, in the next post we’re going to see how to parser the different (SOAP, XML, JSon) types of responses.

OpenGL ES 2.0 For Beginners Tutorial

OpenGL ES was at one time the most popular topic on the site, but that topic began to fall to the wayside somewhat because of the improvements in different iPhone game engines, and because of the perceived increase in complexity between OpenGL ES 1.1, and OpenGL ES 2.0.

That being said, Ray Wenderlich has created a solid tutorial that goes from the absolute beginning of learning OpenGL ES 2.0 through to the creation of a simple beginners tutorial.

What I like about the tutorial is that it starts from absolute scratch, and from the ground up is built to work with OpenGL ES 2.0.

I have added the tutorial to the Categorized OpenGL ES Tutorial Collection, and I have begun working on an OpenGL ES Tutorial And Guide page where I hope to aggregate the info from the many OpenGL ES related posts that have been on this site (be sure to post any beginner related questions there!) – it’s just getting started, but look for more additions soon.

You can find this tutorial on Ray’s site here:
Beginner OpenGL ES 2.0 Tutorial

If you have ever wanted to enter the world of OpenGL ES 2.0 programming this is a great starting point.

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Accessorizer Objective-C Code Generation Tool Dropped To $1.99 For WWDC

Some time ago I mentioned the powerful Accessorizer code generation tool which is a great time-saver tool for anyone programming Objective-C iOS and Mac apps.

It looks like the price for the tool has dropped to $1.99 until WWDC.

You can find Accessorizer in the Mac App Store here:
Accessorizer Code Generation Tool

You can read my previous post with a short demonstration video on the accessorizer here:
Objective-C Accessorizer

If you want it – get it while it’s cheap!

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Add DatePicker programmatically and display date in iPhone

In this example we will see how to UIDatePicker implement programmatically in the code and display  date on the screen. So let see how it will worked.

Step 1: Open a Xcode, Create a View base application. Give the application name ”DatePickerWithDate”.

Step 2: Xcode automatically creates the directory structure and adds essential frameworks to it. You can explore the directory structure to check out the content of the directory.

Step 3: We need to add one background image in the project. Give the image name “1.png”.

Step 4: Open the DatePickerWithDate.h file and create an instance of UIDatePicker class and  UILabel class. So make the following changes in the file.

#import <UIKit/UIKit.h>

@interface DatePickerWithDateViewController : UIViewController {
   
    IBOutlet UIDatePicker *datePicker;
    IBOutlet UILabel *datelabel;
 
}

@property(nonatomic,retain) UIDatePicker *datePicker;
@property(nonatomic,retain) IBOutlet UILabel *datelabel;

@end

Step 5: Double click the DatePickerWithDate.xib file open it to the Interface Builder. First drag the imageview from the library and place it to the view window. Select the view and bring up Attribute inspector and select the 1.png. Now save the .xib file save it and go back to the Xcode.

Step 6: In the DatePickerWithDate.m file make the following changes in the file:

#import "DatePickerWithDateViewController.h"

@implementation DatePickerWithDateViewController

@synthesize datePicker;

@synthesize datelabel;

(void)dealloc
{
    [super dealloc];
    [datelabel release];
     [datePicker release];
   
}

(void)didReceiveMemoryWarning
{
    // Releases the view if it doesn’t have a superview.
    [super didReceiveMemoryWarning];
   
    // Release any cached data, images, etc that aren’t in use.
}

#pragma mark – View lifecycle

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
(void)viewDidLoad
{
    [super viewDidLoad];
   
    datelabel = [[UILabel alloc] init];
    datelabel.frame = CGRectMake(10, 200, 300, 40);
    datelabel.backgroundColor = [UIColor clearColor];
    datelabel.textColor = [UIColor whiteColor];
    datelabel.font = [UIFont fontWithName:@"Verdana-Bold" size: 20.0];
    datelabel.textAlignment = UITextAlignmentCenter;
       
       
        NSDateFormatter *df = [[NSDateFormatter alloc] init];
        df.dateStyle = NSDateFormatterMediumStyle;
        datelabel.text = [NSString stringWithFormat:@"%@",
                  [df stringFromDate:[NSDate date]]];
        [df release];
        [self.view addSubview:datelabel];
        [datelabel release];
       
       
        datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)];
        datePicker.datePickerMode = UIDatePickerModeDate;
        datePicker.hidden = NO;
        datePicker.date = [NSDate date];
   
        [datePicker addTarget:self
                       action:@selector(LabelChange:)
             forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:datePicker];
   
    [datePicker release];
   
   
}

(void)LabelChange:(id)sender{
        NSDateFormatter *df = [[NSDateFormatter alloc] init];
        df.dateStyle = NSDateFormatterMediumStyle;
        datelabel.text = [NSString stringWithFormat:@"%@",
                  [df stringFromDate:datePicker.date]];
}

(void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

Step 7: Compile and run the application in the simulator.

You can Download SourceCode from here DatePickerWithDate

iLog holds up your iPad while you watch Ren & Stimpy episodes

In the never-ending quest to merge nature and technology, an iPad stand has emerged that would make a lumberjack proud. iLog by TwistedTwee is an iPad stand made from “carefully chosen re-claimed London wood,” and it makes your iPad feel at home in any log cabin. The stand accommodates an iPad vertically and horizontally, and it looks pretty cool when you you run a fireplace app on your iPad. Yeah, some might say it’s just a log, but doesn’t everyone want a log? Best of all, if your place ever gets too cold you can actually burn the stand in your fireplace. The iLog stand is £35.00 and ships from the UK.

[via Swiss-Miss]

iLog holds up your iPad while you watch Ren & Stimpy episodes originally appeared on TUAW on Wed, 25 May 2011 00:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

The two Apple engineers who created Hype

Hype IconJonathan Deutsch, co-founder of Tumult Inc., recently talked to The Startup Foundry about leaving a stable job at Apple to build Hype, the new HTML5 Animation Builder for Mac OS X. Despite some provocative headlines linking to the story, the reason the founders took on this challenge wasn’t borne out of Apple’s attitude towards Flash.

Released last Friday exclusively through the Mac App Store for an introductory price of US$29.99, Hype embraces the HTML5 family of technologies — including new HTML5 tags, CSS3, and the latest JavaScript technology — to allow customers to create standards-based interactive websites that rival Flash.

Over the weekend, Tumult’s product became the top-grossing application on Apple’s software marketplace, topping Pages, Aperture, iPhoto, Keynote, Numbers, and iMovie.

Prior to opening shop for himself, Deutsch was the engineering manager for Mac OS X Mail’s back end. He also worked on Mac OS X’s software update mechanism, automation technology, and even Steve-note demonstrations. Despite a successful career at Apple, he always wanted to have his own company, saying it’s “in the blood.” He and his business partner Ryan Nielsen, another senior member of the Mac OS X team, both saw a new wave of “Web 3.0” technologies, more commonly referred to as “HTML5,” hitting the market. “It was always in the back of my mind that for any technology shift you’d need tools to help out,” Deutsch told The Startup Foundry. “I’m really a tools guy, though we tend to call them ‘apps’ nowadays.”

Deutsch said the idea for Hype came after a trip to Europe. He wanted to showcase photos from his travels on a website with animations and pizazz. Hand-coding the site he imagined in HTML5 would’ve been a “nightmare,” and Flash wouldn’t be appropriate for mobile access to the site. When he couldn’t find a better way to easily build an interactive website for his photos, Deutsch recognized the opportunity to build a solution for himself and start a business around it.

Walking away from an established career at Apple was bittersweet. Deutsch says he formed a deep social and professional network at the Cupertino company that was painful to say goodbye to, but if he had chosen to stay at Apple, Deutsch would’ve been left to wonder what if. “‘Regret Minimization’ is what should win out in life,” he says, “so it did.”

[via Business Insider]

The two Apple engineers who created Hype originally appeared on TUAW on Tue, 24 May 2011 21:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Getaround app takes car sharing peer-to-peer on the iPhone

Getaround is a brand new app launching today on the App Store that is designed to be a “peer-to-peer car rental marketplace.” The idea is that it’s like a Zipcar sort of service, but run peer-to-peer style, so anyone can rent their cars for just a few bucks an hour. If you need a car for a limited amount of time, you can load up the app, do a quick search in your area, and then find a car and an owner renting it just long enough to take a trip to the grocery store or pick up a piece of furniture.

And if you want to be an owner, you can sign up with the service online, and Getaround will cover the insurance after an eligibility screening, and even provides a special carkit that lets users unlock and lock their cars straight through the iPhone app (just like the official Zipcar app).

It seems like a great service, both for people who want to make a few bucks renting cars, and for current car sharing users looking for a cheaper or closer service than they’re currently using. If you live in an urban area and could make use of a shared car, give it a look.

Getaround app takes car sharing peer-to-peer on the iPhone originally appeared on TUAW on Tue, 24 May 2011 20:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

An interview with Apple’s first CEO, Michael Scott

Business Insider conducted an excellent interview with Apple’s first CEO, Michael Scott. In it Scott spills some details about the very first days of Apple. There are little interesting details such as the Apple employee numbering scheme, which came out of necessity. Bank of America, where Apple opened its first bank account, required that all employees have numbers for payroll purposes. Scott took number 7, even though chronologically he was Apple’s fifth employee: “I was employee number seven, because I wanted number seven… I was 007, of course, as a joke.”

Scott also reveals plenty of anecdotes about Steve Jobs, like his attention to details and products, but not to people: “They spent weeks and weeks arguing exactly how rounded [the Apple II case] would be. So that attention to detail is what Steve is known for, but it also is his weakness because he pays attention to the detail of the product, but not to the people. To me, the biggest thing in growing a company is you need to grow the people, so it’s like being a farmer, you need to grow your staff and everybody else too as much as you can to enable the company to grow, just as much as you need to sell the product.”

The entire article is well worth a read. It’s also interesting to learn that Apple’s first CEO is now working on a bona fide Star Trek tricorder: “I’m working on a tricorder. It’s from the first Star Trek. It’s a handheld gadget where you hold it out and it tells you what something was. So I’m working on the libraries that would let you take something the size of a cell phone and if you’re walking out the trail, aim it at a rock, and it’ll tell you whether it’s a sapphire, and emerald, etc. So the technology is there now. What’s not there is the library routine that tells you what things are.” That sounds like a heck of a feature for future iPhones. Steve Jobs, are you paying attention?

An interview with Apple’s first CEO, Michael Scott originally appeared on TUAW on Tue, 24 May 2011 19:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

No Comment: Friskies makes iPad web games for cats

So it’s come to this. Originally, discovering that cats liked to play with the iPad was just a matter of coincidence — Felix just liked to bat around the Magic Piano, and that was fine. But pet food maker Friskies has blown that idea right out, releasing a line of three full web-based games for the iPad meant to be played entirely by cats.

It’s true. Cat Fishing!, Party Mix-Up! and Tasty Treasures Hunt! are all games accessible from that website and built in HTML 5 just for the iPad, and as you can tell from the video after the break, all three of them are designed to attract your cat’s attention. With bright shapes that move around in a jerky yet lifelike manner and flashy graphics that respond to paw touches, your cat now has its own games to play on your iPad 2.

Friskies even warns that while cat claws can’t scratch the iPad’s glass screen, certain plastic covers might get scratched, so be careful. What they don’t warn about, however, is that you might lose all of your Angry Birds free time to a game-addicted kitty. Beyond that, we have no comment.

[via Laughing Squid]

Continue reading No Comment: Friskies makes iPad web games for cats

No Comment: Friskies makes iPad web games for cats originally appeared on TUAW on Tue, 24 May 2011 19:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

iOS 5 rumor: iPhone 3GS to drop off supported list?

Normally we don’t give much credence to a single tweet pertaining to rumors about the next iPhone, but this one comes from Eldar Murtazin, editor-in-chief of mobile phone blog Mobile-Review. Murtazin has a history of accurately predicting mobile phone rumors and in this tweet says the iPhone 3GS will not be upgradable to iOS 5 when it debuts this fall: “Just one comment. Apple iPhone 3Gs wont be upgradable to iOS 5.x. iPhone 4 will.” [Note that it is possible that Murtazin was referring to the plural of iPhone 3G — 3Gs — and not the iPhone 3GS model, but it’s not clear. -Ed.]

Apple dropped support for the original iPhone in iOS 4 and limited support to certain features of iOS 4 on the iPhone 3G, so some might think it’s obvious that iOS 5 will not support the iPhone 3GS — a two year old phone by the time the new operating system ships. However, as MacRumors points out, Apple still currently sells the iPhone 3GS and not supporting the newest OS on something they currently sell (at least until the day they announce the new iPhone) would be out of character for the company. But with all the rumors that iOS 5 will sport the biggest changes iOS has seen since its debut, it’s conceivable that iOS 5 might have some pretty big hardware requirements and could require at least an A4 chip and possibly even a Retina Display to run.

[hat tip MacStories]

iOS 5 rumor: iPhone 3GS to drop off supported list? originally appeared on TUAW on Tue, 24 May 2011 18:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Apple: Mac OS X update coming to block MacDefender malware

Tipster TJ just pointed us to a new Apple Support knowledge base article that describes how to avoid and remove the MacDefender malware. It’s largely the same information that we have in our removal guide, but it’s good to see that Apple is now making the instructions available for everyone. (Sample tip: “If any notifications about viruses or security software appear, quit Safari or any other browser that you are using.”)

One of the more interesting points from the knowledge base post is seen in the graphic above: Apple says that a Mac OS X software update is coming soon that will automatically find and remove MacDefender and its known variants, as well as giving users a warning if the malware is downloaded to the Mac.

According to our developer friends, Apple also sent out a Developer Seed Notice on May 20 to Mac developers regarding Mac OS X 10.6.8 Build 10K524, which became available for download and testing on that date. We have reason to believe that this security/malware patch will be rolled into Mac OS X 10.6.8, which means it’s coming pretty soon.

Apple: Mac OS X update coming to block MacDefender malware originally appeared on TUAW on Tue, 24 May 2011 18:10:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Evernote offering developer competition, conference

Evernote has announced two big events for its developer community coming up later this year. First, the company is holding a competition with over $100,000 in prizes available to win. To enter, all developers need to do is build an app, service, or device that works with the Evernote system by July 15. The submissions will be judged over the subsequent week or two, and then in August, Evernote will announce six finalists. Some of those finalists will win some money, with a chance at a grand prize of $50,000. That’s a nice payday for anyone willing to put some development time into extending Evernote out even further.

To help developers put their apps and services together, Evernote has also announced the first-ever Evernote Trunk Conference, going on August 18 in San Francisco. The conference will offer a day of workshops and sessions designed to help developers hook their own apps up to Evernote, and learn how to parse the API, make use of best practices, and lots more. This same conference is where the winners will be announced for the developer competition, so if you’re hoping to be in the running, you should plan on being there.

Both of these are just for developers, of course, but if you’re an Evernote user, you hopefully can look forward to all kinds of ingenious additions to the service and its extended universe, which is what both of these events are of course intended to bring about.

Evernote offering developer competition, conference originally appeared on TUAW on Tue, 24 May 2011 18:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments