Recent Posts
Archives

Posts Tagged ‘MobileApps’

PostHeaderIcon [DevoxxBE2013] Business Strategies for Small Independent Developers

Joe Cieplinski, Creative Director at Bombing Brain Interactive, imparts wisdom on navigating the indie development landscape, drawing from his journey with apps like Teleprompt+ and Setlists. A former Apple Store presenter and app designer since 2008, Joe shares monetization tactics, customer engagement, and marketing essentials for sustaining a living through mobile software. His session, infused with anecdotes from his iOS and OS X ventures, underscores premium pricing, in-app purchases, and responsive support as pillars of success.

Indie developers, Joe contends, thrive by treating apps as products with ongoing value. He recounts Bombing Brain’s evolution, from manual support to PDF/iBooks guides, reducing queries while building loyalty. Effective strategies, he illustrates, blend quality delivery with community interaction, turning users into advocates.

Monetization Models and Pricing Wisdom

Joe advocates premium upfront pricing for perceived value, citing Teleprompt+’s $19.99 tagline drawing discerning users. Subscriptions and in-app upgrades, he demos, extend revenue—unlocking features like cloud sync fosters recurring income.

Avoid free apps’ ad pitfalls, Joe warns; targeted promotions on App Store or forums yield better conversions than broad ads.

Customer Support and Resource Creation

Exemplary support, Joe emphasizes, differentiates indies. He shares Tim Mosley’s empathetic responses, turning complaints into testimonials. Comprehensive manuals—100-page PDFs for Teleprompt+—preempt queries, saving time while showcasing depth.

Social media, though secondary for his audience, amplifies reach; Twitter/App.net engagements build rapport.

Building Reputation and Marketing Tactics

Reputation accrues through consistent excellence, Joe asserts. Cross-platform ports, like Teleprompt+ for iPad/iPhone/OS X, expand ecosystems. Collaborations with friends, as in his trio, infuse passion into products.

Marketing favors organic growth: user reviews, niche forums, and targeted outreach outperform paid campaigns for bootstrapped teams.

Lessons from Bombing Brain’s Journey

Joe reflects on x2y’s launch, balancing innovation with sustainability. He urges indies to prioritize joy—his “lifestyle” approach sustains creativity amid challenges.

This blueprint, Joe concludes, equips solo creators for enduring viability in app markets.

Links:

PostHeaderIcon [DevoxxFR2012] Android Development Essentials: A Comprehensive Introduction to Core Concepts and Best Practices

Lecturer

Mathias Seguy founded Android2EE, specializing in Android training, expertise, and consulting. Holding a PhD in Fundamental Mathematics and an engineering degree from ENSEEIHT, he transitioned from critical J2EE projects—serving as technical expert, manager, project leader, and technical director—to focus on Android. Mathias authored multiple books on Android development, available via Android2ee.com, and contributes articles to Developpez.com.

Abstract

This article examines Mathias Seguy’s introductory session on Android development, designed to equip Java programmers with foundational knowledge for building mobile applications. It explores the Android ecosystem’s global context, core components like activities, intents, and services, and practical implementation strategies. Situated within the rapid evolution of mobile IT, the analysis reviews methodologies for UI construction, resource management, asynchronous processing, and data handling. Through code examples and architectural patterns, it assesses implications for application lifecycle management, performance optimization, and testing, providing a roadmap for novices to navigate Android’s intricacies effectively.

Positioning Android Within the Global IT Landscape

Android’s prominence in mobile computing stems from its open-source roots and widespread adoption. Mathias begins by contextualizing Android in the IT world, noting its Linux-based kernel enhanced with Java libraries for application development. This hybrid architecture leverages Java’s familiarity while optimizing for mobile constraints like battery life and varying screen sizes.

The ecosystem encompasses devices from smartphones to tablets, supported by Google’s Play Store for distribution. Key players include manufacturers (e.g., Samsung, Huawei) customizing the OS, and developers contributing via the Android Open Source Project (AOSP). Mathias highlights market dominance: by 2012, Android held significant share, driven by affordability and customization.

Development tools integrate with Eclipse (then primary IDE), using SDK for emulation and debugging. Best practices emphasize modular design to accommodate fragmentation—diverse API levels and hardware. This overview underscores Android’s accessibility for Java developers, bridging desktop/server paradigms to mobile’s event-driven model.

Core Components and Application Structure

Central to Android apps are activities—single screens with user interfaces. Mathias demonstrates starting with a minimal project: manifest.xml declares entry points, main_activity.java handles logic, and layout.xml defines UI via XML or code.

Code for a basic activity:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Intents facilitate inter-component communication, enabling actions like starting activities or services. Explicit intents target specific classes; implicit rely on system resolution.

Services run background tasks, unbound for independence or bound for client interaction. Content Providers expose data across apps, using URIs for CRUD operations. Broadcast Receivers respond to system events.

Mathias stresses lifecycle awareness: methods like onCreate(), onPause(), onDestroy() manage state transitions, preventing leaks.

Handling Asynchronous Operations and Resources

Mobile apps demand responsive UIs; Mathias introduces Handlers and AsyncTasks for off-main-thread work. Handlers post Runnables to UI thread:

Handler handler = new Handler();
handler.post(new Runnable() {
    public void run() {
        // UI update
    }
});

AsyncTask abstracts background execution with doInBackground(), onPostExecute():

private class DownloadTask extends AsyncTask<String, Integer, String> {
    protected String doInBackground(String... urls) {
        // Download
        return result;
    }
    protected void onPostExecute(String result) {
        // Update UI
    }
}

Resources—strings, images, layouts—are externalized in res/ folder, supporting localization and densities. Access via R class: getString(R.string.app_name).

Data persistence uses SharedPreferences for simple key-values, SQLite for databases via SQLiteOpenHelper.

Advanced Patterns and Testing Considerations

Patterns address lifecycle challenges: Bind threads to activity states using booleans for running/pausing. onRetainNonConfigurationInstance() passes objects across recreations (pre-Fragments).

For REST services, use HttpClient or Volley; sensors via SensorManager.

Testing employs JUnit for units, AndroidJUnitRunner for instrumentation. Maven/Hudson automate builds, ensuring CI.

Implications: These elements foster robust, efficient apps. Lifecycle mastery prevents crashes; async patterns maintain fluidity. In fragmented ecosystems, adaptive resources ensure compatibility, while testing mitigates regressions.

Mathias’s approach demystifies Android, empowering Java devs to innovate in mobile spaces.

Links: