VIJUG_ChapterLab_EclipseRCP_MicroISV.ppt - Kevin Matz
Document Sample


Building apps with Eclipse RCP and
starting a micro-ISV business
A presentation for the Vancouver Island Java Users’ Group
Kevin Matz
2012.03.28
Topics
A quick peek at the ChapterLab app 10 min
Building apps with Eclipse RCP 25 min
Starting a Micro-ISV business 25 min
2
A quick peek at the ChapterLab app
ChapterLab:
The 30 second pitch
• “Writing a book is hard!”
• Word processors haven’t fundamentally changed in 30+
years, and don’t offer support for the non-linear workflow
of planning, researching, writing, editing, and testing a
lengthy book/manual/thesis
• ChapterLab is a new kind of writing tool
– Plan your project, organize notes and materials
– Refactor/restructure your document painlessly
– Coherence checking: do explanations follow a logical order?
– Record thoughts and ideas using visual diagramming*
– Structure content into outlines using explanation patterns*
* (not in Beta release)
4
A quick demo of ChapterLab
Visit http://www.chapterlab.com for a four-minute demo video
5
Building apps with Eclipse RCP
Eclipse RCP
• Eclipse
– IDE and “open tools platform”
– The Eclipse Foundation
– Ecosystem of developers, vendors
– Open-source, Eclipse Public License
• Safe for commercial use
• Rich Client Platform (RCP) is a multiplatform
framework for desktop apps
– Native look-and-feel for Windows,
Mac OS X, Linux, AIX, HP-UX, Solaris
– UI based on SWT, JFace
7
RCP plugins and features
• Plugins are components (OSGi bundles) that can
be installed in an Eclipse instance
– Plugins contribute extension points which allow
configuration via an XML file (plugin.xml)
• Features are wrappers for bundles of plugins
• You can distribute plugins/features for installation in
users’ existing Eclipse installations…
• …or bundle them with a workbench and distribute it
as a standalone app (product)
8
Major UI components of Eclipse RCP
• Workbench
• Perspectives
• Editors
• Views
• Menus, Toolbars
– Actions, Commands
• Key bindings
9
Examples
• Creating, registering an editor
• Configuring perspectives
• Configuring menus
• Configuring key bindings
• Configuring help content
• Product branding
• Product definition, export
10
Distributing/deploying RCP apps
• Java Web Start possible but difficult due to platform-
specific SWT libraries
• Create installers for each platform
– Mac: PackageMaker (part of Xcode developer suite)
– Windows: Many options, e.g., Nullsoft Scriptable Installer
System (NSIS)
• Java runtime
– Mac OS X includes JRE 1.6, yay
– Windows does not
• During installation, check for Java and ask user to install Java
• Or, bundle JRE (87MB uncompressed) with your distribution
11
Some complaints about RCP
• Weak documentation
• SWT and RCP APIs tend not to use generics
• Configuration hell
– Product definition as plugins Constant problems, flakiness
– “Just install feature X” Great, how/where do I find it?
– Updating Eclipse IDE tends to leak unwanted crap into your
product (Surprise! Irrelevant menu commands, toolbar icons)
– Difference between run/debug configuration and exported
product configuration Everything needs regression testing
• Obfuscation (Obfuscate4e and ProGuard)
– Class names and public, protected members of classes that
extend/implement RCP classes/interfaces must remain intact
12
Eclipse Rich Ajax Platform (RAP)
• Write web apps using the same RCP framework
• RWT = SWT implementation running in a browser
• RCP apps can generally be converted to RAP
– But only a subset of SWT widgets currently supported
– Latency is an issue
• Sample showcase app: http://www.cas-
pia.de/en/try.html
13
Starting a micro-ISV* business
* “Micro Independent Software Vendor”
What’s involved?
CEO = Chief Everything Officer
• Business and financial planning
• Project management
• Product ideation, design
• Market research, feasibility studies
• Product development, testing
• Web design, copywriting, SEO
• Marketing, promotion, branding, PR
• Selling, payment processing
• Customer service
• Business administration
– Accounting, Legal, regulatory paperwork…
15
Why do it?
Good reasons for starting a business
• Control of your own destiny; design your future
• Desire to build something new/useful/creative
• You’ve got an idea that the world needs and only
you can bring it to fruition
• Personal development
– Learn wide range of skills
– Challenge
• Potential for financial success
16
Not so good reasons
• I want to escape my bad boss, cubicle job, etc.
• I want to Get Rich Quick!
• I want to be the boss so I
can tell people what to do!
• I want to live the glamorous
lifestyle of an entrepreneur!
– Fantasy and reality are often
quite different
Photo credit: artist unknown (found on the net) 17
My ideal business
(warning: may not match your ideal!)
• Selling a scalable product/service rather than
working for an hourly rate
• No employees if possible
• Selling to many customers rather than one or a few
key client(s)
– If you have one customer, you have a boss
– Reduces risk (a customer leaving is no big deal)
– Freedom to “fire” your bad customers
18
My ideal business
(warning: may not match your ideal!)
• Short-term: Can earn enough cash to get by
• Long-term: Potential to scale to higher earnings
• Location-independent, portable
• Night-owl friendly
• Free of hassles as much as possible
– Highly-regulated industries? No thanks
• Lets me be creative
“Lifestyle business” and not a startup? OK, fine
19
What’s your product?
Generating business ideas
• The idea is everything… and nothing
• Many successful businesses exploit existing ideas
– Microsoft (BASIC, DOS, Windows, Word, Excel, Bing…)
– McDonalds, Subway
• Ideas without a “barrier to entry” are easily copied
– Groupon
• New ideas can be good: head start over the copiers
• Borrowed ideas can be good: they’ve been proven to
work!
– Borrow an idea and make it better (product/market differentiation)
• Best way to get a good idea is to generate TONS of
ideas and reject 99% of them
Photo credit: Yassine Mrabet 20
Business models
• Selling/licensing a product
– Enterprise sales
– Shareware/Trialware
– Shrinkwrap, sell in stores
• Software-as-a-Service (subscription, pay-per-use)
• Freemium
• Advertising-supported
• Donation-supported
• Bundling
• No revenue or business model, but hope for buy-out
21
Before you build, think about your
marketing strategy:
• Product
– Target market, wants/needs (“pain point” addressed)
– Product features/scope
– Naming, branding, product line strategy
• Pricing
– Profit optimization; competition
– Perceived value
• Promotion
– Advertising, selling, PR, SEO, etc.
• Place (distribution)
Positioning (what sets you apart from the competition) can
involve any/all of the above
22
The Lean Startup approach
(Ries, Blank, etc.)
• Minimum Viable Product
– “Validated learning” about what customers want or do not
want
– Not necessarily an actual product (e.g., landing page)
• Frequent contact and testing with real customers
• Rapid iteration, continual deployment
• Pivot
– Change product, target market, strategy, …
• Customer development alongside product
development
Photo credit: Eric Ries and Crown Business Publishing 23
Financing your startup
• How much time and money will
you need for developing and marketing
your product?
• Where will you get the money?
– Bootstrapping using your own savings
– Venture capital
– Angel funding, accelerator programs
– Crowdsourcing (e.g., Kickstarter)
– Bank loan (haha, good luck)
Photo credit: “Allureme” (wikipedia user) 24
Shifting how you think
• Employee
– Specialist
– Working long and hard and pleasing the boss is the key to success
– Usually plays a small role in implementing someone else’s big idea
– Doesn’t take financial risks
• Hacker
– Creates clever new stuff just for the fun of it, and bragging rights
• Entrepreneur
– Generalist
– Thinks about problems/wants/needs that people and businesses
have and what can be done to solve/satisfy these
– Fun project, long hours, advanced technology won’t necessarily lead
to success in the marketplace
– Takes risks but balances risks with potential rewards
– Mindset: How do I make this happen? If I can’t do X, can I learn it,
or how do I find someone to do X and how do I afford it?
25
Shifting how you think: Thinking
from a business perspective
• $14,000 loss for FY2011
– Sounds horrible!
– But it’s mostly owed to me as a shareholder loan for unpaid
management wages
– Why wages? So I can make an SR&ED claim that will
hopefully lead to a cheque for $8,000
– Plus, a business loss means the business pays no taxes
• Corporation as a separate entity
– When individual tax year end and company’s fiscal year
end differ, company can split wages and/or dividends
across years to minimize taxes and exploit exemption limits
26
The most important thing of all
Get started!
Follow your dreams,
build something creative,
take a shot at selling it,
and if it doesn’t work,
learn from it,
and try again with the next project.
And tell us about it!
27
Good luck!
• www.chapterlab.com
• www.winchelseasystems.com
Twitter: @chapterlab
@kevin_matz
28
Get documents about "