If you are a Twitter freak, then you might be interested in the Intuit Partner Platform developer community Twitter feed...it's up and running: @ippdev...add as your friend to get updates on IPP stuff and chat!
« February 2009 | Main | April 2009 »
If you are a Twitter freak, then you might be interested in the Intuit Partner Platform developer community Twitter feed...it's up and running: @ippdev...add as your friend to get updates on IPP stuff and chat!
Posted by Alex Barnett on March 30, 2009 in IPP | Permalink | Comments (0) | TrackBack (0)
Communicating ideas visually and getting everyone on the same page (literally) when you are designing or modifying user interfaces is a critical step in the overall development process and ending up with a great user experience. And doing so earlier and often, the better...without this you'll end up here :-)
There are many ways to do this and quite a few tools that make this a speedy and simple task.
Of course, Flex is a great tool for developers already familiar with the tool, but there are lots of different options for those with varying skills - this article provides a review of 16 Design Tools for Prototyping and Wireframing.
One of my favorite is Balsamiq Mockups - an Adobe AIR app, great for communicating the concepts of a proposed interface via wireframing.
Do you use tools to prototype and develop wireframes? Which tools do you use, and why? How do you communicate your ideas?
Posted by Alex Barnett on March 28, 2009 in Flex, RIA | Permalink | Comments (0) | TrackBack (0)
Advantage SmartRoutes, built on the Intuit Partner Platform is now live and fully available at the Intuit Workplace! From the FoxBusiness.com article:
Coupled with the Advantage SmartRoutes rich internet application, the TomTom PRO Series now offers a way for fleet managers and route dispatchers to organize, plan and optimize routes. This solution also gives drivers detailed mapping information about the locations to which they are navigating."
Features include:
You can find out more about the new IPP app at the Intuit Marketplace.
Advantage SmartRoutes went into beta in January 2008, so a big congrats to Scott and his team at Advantage to go fully live!
Posted by Alex Barnett on March 26, 2009 in IPP, Marketplace, RIA | Permalink | Comments (0) | TrackBack (0)
Driving lots of small business users to Intuit Marketplace is important to us and to our developer community. Making it easy for them to discover and purchase applications that solve their needs is critical, and one of the things that makes the Intuit Partner Platform offering special.
After conducting focus groups with a number of small business users and with the emphasis on improving the user experience and increasing adoption, we’ve just launched an updated Intuit Marketplace:
With these changes in place, we hope to increase customer awareness and make it as easy as possible for users to make informed decisions.
This is just step one of our re-design of Marketplace. By engaging with small business users and our developers, we think we are well on our way to creating a great destination for Small Businesses.
Check out the the updates to Intuit Marketplace and let us know what you think!
Posted by Alex Chriss on March 24, 2009 in IPP, Marketplace | Permalink | Comments (1) | TrackBack (0)
The Intuit Community is a great place to share your QuickBooks and small business knowledge with others. It can be a way to get your name out there, to build familiarity with your products and services, and to network. By answering questions you let prospective customers get a free sample of your expertise.
Before you participate, it is important to be familiar with the Community rules and expectations.
The philosophy behind these rules is that everyone should give to the common good. Like a potluck, everyone has to bring a dish to share. In this case the sharing is your time, your knowledge of QuickBooks, and your knowledge of the business domain in which you specialize.
If we don't make sure that everyone shares something, then we have a situation where everyone is taking from the common good without replenishing it.
Those who share get to receive benefit in the form of limited and judicious self-promotion. Those who share the most are given the most latitude and opportunity to benefit from being featured on the site. There are many such opportunities, such as leading an Ask The Expert event or a Webinar.
Posted by Annie Terry on March 24, 2009 | Permalink | Comments (0) | TrackBack (0)
Manning Publications has posted a free pdf of Chapter 23 from their book called "Flex 3 in Action". Chapter 23 includes Debugging, profiling, 3rd party tools, unit testing, and functional testing of Flex Applications.
Flex 3 in Action
Chapter 23
Manning Publishing
http://www.manning.com/ahmed/Flex3-sample-chapter-23.pdf
From the author's blog
Happy Coding,
Jarred
Posted by Jarred Keneally on March 18, 2009 in Flex, Learning, RIA | Permalink | Comments (0) | TrackBack (0)
How do we handle QuickBase relationships using the Intuit Partner Platform Flex SDK Plugin?
The QuickBase Missing Manual describes the mechanics for creating relationships between tables as well as common use-case relationships. For example, you can think of a one-to-many relation between projects and tasks where each task in the tasks table is linked to a specific project in the projects table. The projects table is referred to as the Master table and the tasks table as the Details table. QuickBase uses the master's key field or the record id# to relate the records between the master and details table.
Note that within QuickBase the only type of relationship you can directly define is 1:many though within your application you can implement a 1:1 relationship by having a back reference many:1 relationship from master to detail and implementing your business logic to enforce the 1:1 nature of the intended relationship.
Why
implement a relationship in the first place? Quite simply, because once you
have a relationship, QuickBase can do a lot of work for you: fields from the
master can be automatically reflected into the details rows (effectively an
Inner Left Join for you SQL-nuts) so you don’t need to go look up the master
record when you have a detail record in-hand and just need a couple of fields
from the master record on a regular basis; and fields from the details table can
be summarized in the master record using a variety of summary operators
such as Average, Count, Maximum, etc.; they can even be summarized with the
equivalent of a “where” clause to summarize only a subset of the details records
(i.e. total task hours assigned to the current user).
How does this work with the IPP Flex SDK Plugin? Using DTOs and some of the APIs in the Kingussie framework we can simplify the task of adding records, maintaining relationships and refreshing summary fields.
I have a Developers table as the master table and a Ratings table as the details table. There can be many Ratings records for a single developer and the summary field which is the average rating in the Developers table keeps track of this.
The challenges are
How do we add a record to the ratings table and relate it to a developer record?
How do we refresh the summary field of the developer record in the view when a ratings record related to the developer is added? Normal refresh mechanisms such as those implemented by the QuickBaseDTOArrayCollection will not detect changes to the developer record if all that changed were details records summarized by the developer record, so our app needs to “know” that it has changed something that influences other records and force a refresh.
To add a Ratings record, we first relate it to the Developer record and add it.
rating.populateDTO();
// Relate the Ratings record to the Developers record
model.ratingsDTO.Relateddeveloper = Number(model.developersDTO.rid);
var addRatingEvent: QuickBaseEventStoreRecord = new
QuickBaseEventStoreRecord(model.RatingsDTO,
new KingussieEventCallBack(doRefreshRating));
addRatingEvent.dispatch();
Where rating is a simple IDNForm.
<widgets:IDNForm id="rating" dto="{model.ratingsDTO}">
<widgets:IDNField fieldLabel="Enter Rating:" fieldName="Rating"/>
</widgets:IDNForm>
To refresh the view using the Kingussie event chaining, we define a method doRefreshRating which essentially refreshes the parent record and thereby updates the summary field.
public function doRefreshRating(data:Object): void
{
// refresh the parent record now
var refreshDeveloperEvent: QuickBaseEventRefreshRecord = new
QuickBaseEventRefreshRecord(model.developersDTO);
refreshDeveloperEvent.dispatch();
// refresh the ratings DTO
model.ratingsDTO = new Ratings_DTO();
}
In conclusion, we looked at how to handle relationships between tables, what is a Master table and a Details table, how to link records between the tables and how to automatically refresh summary fields in the parent record.
Posted by Rags Srinivas on March 17, 2009 in IPP, Learning, Tech Tips | Permalink | Comments (0) | TrackBack (0)
RIA Weekly is a great podcast series produced by Adobe’s Ryan Stewart and Redmonk’s Michael Coté discussing Rich Internet Applications and related news.
Last week they published RIA Weekly #45 - RIA’s and PaaS’s, The Intuit Partner Platform, where we talked about Intuit’s involvement in the RIA space and the Intuit Partner Platform. Thanks to Michael and Ryan for inviting me on their show.
If you have any thoughts on what you heard, let me know!
Posted by Alex Barnett on March 11, 2009 in IPP, RIA | Permalink | Comments (0) | TrackBack (0)
Apart from the name, there are some important properties and methods that make it more useful in the context of writing your Flex code.
You can leverage the framework and use QuickBaseDTOArrayCollection to keep your data up to date and avoid having to do the low-level programming to acheive the same otherwise.
I'll try and explain this with some very simple code snippets.
The following is defined in the model.
public var developersDTO: Developers_DTO = new Developers_DTO();
public var developersList: QuickBaseDTOArrayCollection ;
where the Developers_DTO is the Data Transfer Object for an individual record and it handles the marshalling and umarshalling of the fields of the record. It is automatically generated as part of the project when you use the "Generate data transfer objects" as part of the IPP plugin.
I instantiate this list in the view in the initPanel() or as appropriate. This indicates what fields of the record you want to retrieve.
model.developersList = new QuickBaseDTOArrayCollection
(Developers_DTO, true, "",
"Name.Company.EmailContact...", // fields are dot-separated. Not all shown
"",
"");
You initialize the list, which essentially populates the list, something along the lines of below.
model.developersList.initData();
This populated list can then be used as a dataProvider in a DataGrid just like a regular ArrayCollection, through the magic of Flex databinding and the QuickBaseDTOArraycollection's own magic of updating itself when data on the server changes. So, whenever a record is added, updated or deleted by any user (not necessarily the current user) this is reflected in the view.
<mx:DataGrid id="developersViewGrid" change="true" wordWrap="true" dataProvider="{model.developersList}"
You can also force the update when you know things have changed (i.e. because you stored a record in the current client) as below
model.developersList.forceUpdate();
Most importantly, by using the QuickBaseDTOArrayCollection to keep your data up to date, your application is imposing the smallest possible burden on the server, in particular, if data isn't changing, you aren't touching the database, and therefore are reducing your usage charges.
It's certainly possible to duplicate the functionality of the QuickBaseDTOArrayCollection yourself using a standard ArrayCollection, but why do all that low-level programming yourself? Focus on your business logic and let the framework take care of the wiring for you.
You can get more details in the Programmer's Guide.
Posted by Rags Srinivas on March 06, 2009 in IPP, Learning, Tech Tips | Permalink | Comments (0) | TrackBack (0)
The team continues to receive a tremendous amount of high quality feedback from our developer community. We want to share with you the features and capabilities we have planned for the Intuit Partner Platform – this is your chance to review those plans, give us feedback and ask questions directly to the IPP product development team.
Register for session:
Please note: you MUST be a member of the Intuit Developer Network to attend this webinar
You can also sign up for other planned webinars…see the Upcoming Webinars page for details.
Posted by Alex Barnett on March 05, 2009 in IPP, webinars | Permalink | Comments (2) | TrackBack (0)

