280 likes | 366 Views
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. ChapterLab: The 30 second pitch. “Writing a book is hard!”
E N D
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
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)
A quick demo of ChapterLab • Visit http://www.chapterlab.com for a four-minute demo video
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
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)
Major UI components of Eclipse RCP • Workbench • Perspectives • Editors • Views • Menus, Toolbars • Actions, Commands • Key bindings
Examples • Creating, registering an editor • Configuring perspectives • Configuring menus • Configuring key bindings • Configuring help content • Product branding • Product definition, export
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
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
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
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…
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
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)
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
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
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
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
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
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
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)
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?
Shifting how you think: Thinkingfrom 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
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!
Good luck! • www.chapterlab.com • www.winchelseasystems.com Twitter: @chapterlab @kevin_matz