A modern Android app looks good on phones various sizes, often also a tablet version is required. But good tablet version is more than just a bigger screen, it might have completely different flows.
Now Android TV starts, another entry into the same app code. How does this affect an app? What is with Android Wear?
What code can and should be reused? How can an app be prepared for another screen? Whats a good architecture for this? Which patterns work, which patterns we know are outdated for the new multi screen world of Android?
All around the world, localization and internationalization on Android (Droid...Danny Preussler
Android apps are global, they get downloaded all around the world. And this means not only supporting multiple languages via xml files. Its about plurals, date formats, currencies up to things like right-to-left
This topic tries to give an introduction into this large topic for new developers.
Bye Bye Charles, Welcome Odo, Android Meetup Berlin May 2014Danny Preussler
Introducing the next generation testing proxy we use at Groupon to the public:
Odo an http proxy with a RESTful API for mocking or partial rewriting of responses and requests
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, BerlinDanny Preussler
Mobile Apps leben nicht in einer isolierten Welt, sie interagieren mit anderen Apps, mit Services sowie internen und externen Datenquellen. Auch der Nutzer hat hier Einfluss: er wechselt in Realität schnell zwischen Apps, er nimmt Anrufe entgegen während die App läuft. Wenn es zum Testen kommt, stellt uns dies vor Herausforderungen, denn hier brauchen wir isolierte Zustände. Nur so können die Tests reproduzierbare Ergebnisse liefern. Und doch wollen wir die App realitätsnah testen. Wie testet man aber eine App mit Webservices? Wie entkoppelt man diesen, wie testet man Fehlerzuständige die in der Kommunikation passieren können? Wie simuliert man GPS u.ä.? Diese Session versucht Best Practices hierzu zu vermitteln. Es werden sowohl SDK Bordmittel als auch externe Tools vorgestellt, die uns das Testen von Apps in diesen komplexen Fällen erleichtern.
There is 100% chances you are going to engage your customers on mobile first, but converting them into lifetime and faithful promoters is a multi-screen journey. For brands, media and retailers it is then critical to select the most relevant device-agnostic technology and the
Multiscreen mobile email design strategy silverpopSilverpop
Webinar held on February 26, 2013 discussing the challenges of designing emails in a mobile and multiscreen world; outlines the different design approaches; shares tips/best practices. Webinar features Justine Jordan of Litmus; Brian Sisolak of Trilogy Interactive and Loren McDonald, Silverpop
This document covers the Multiscreen APIs from Samsung, which make it possible for a mobile app (iOS, Android and HTML web apps) to communicate with Smart TV apps easily.
All around the world, localization and internationalization on Android (Droid...Danny Preussler
Android apps are global, they get downloaded all around the world. And this means not only supporting multiple languages via xml files. Its about plurals, date formats, currencies up to things like right-to-left
This topic tries to give an introduction into this large topic for new developers.
Bye Bye Charles, Welcome Odo, Android Meetup Berlin May 2014Danny Preussler
Introducing the next generation testing proxy we use at Groupon to the public:
Odo an http proxy with a RESTful API for mocking or partial rewriting of responses and requests
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, BerlinDanny Preussler
Mobile Apps leben nicht in einer isolierten Welt, sie interagieren mit anderen Apps, mit Services sowie internen und externen Datenquellen. Auch der Nutzer hat hier Einfluss: er wechselt in Realität schnell zwischen Apps, er nimmt Anrufe entgegen während die App läuft. Wenn es zum Testen kommt, stellt uns dies vor Herausforderungen, denn hier brauchen wir isolierte Zustände. Nur so können die Tests reproduzierbare Ergebnisse liefern. Und doch wollen wir die App realitätsnah testen. Wie testet man aber eine App mit Webservices? Wie entkoppelt man diesen, wie testet man Fehlerzuständige die in der Kommunikation passieren können? Wie simuliert man GPS u.ä.? Diese Session versucht Best Practices hierzu zu vermitteln. Es werden sowohl SDK Bordmittel als auch externe Tools vorgestellt, die uns das Testen von Apps in diesen komplexen Fällen erleichtern.
There is 100% chances you are going to engage your customers on mobile first, but converting them into lifetime and faithful promoters is a multi-screen journey. For brands, media and retailers it is then critical to select the most relevant device-agnostic technology and the
Multiscreen mobile email design strategy silverpopSilverpop
Webinar held on February 26, 2013 discussing the challenges of designing emails in a mobile and multiscreen world; outlines the different design approaches; shares tips/best practices. Webinar features Justine Jordan of Litmus; Brian Sisolak of Trilogy Interactive and Loren McDonald, Silverpop
This document covers the Multiscreen APIs from Samsung, which make it possible for a mobile app (iOS, Android and HTML web apps) to communicate with Smart TV apps easily.
Responsive Design - Ideal Solution For Managing Search In A Multiscreen WorldTrighton Interactive, LLC
Jody Resnick, CEO of Trighton Interactive, presentation from SMX Advanced 2013 in Seattle. Consumers use multiple devices every day. Maybe they start on a smartphone, move to a PC during at work hours, check the smartphone periodically and finish the evening at home on a tablet. Search is a central part of all these experiences. Research that begins on one device may conclude with a transaction on another…or in a physical location. How do marketers address this new, vastly more complex consumer behavior?
This session offers answers, exploring organic and paid search optimization across screens as well as best practices for tracking and calculating ROI. In addition to tactical advice, speakers will present case studies showcasing the challenges and opportunities of this new multiscreen world.
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...DevClub_lv
Maintaining multiple code bases for the same application is often a pain in the neck for mobile developers. In the recent years, different frameworks have appeared in the market that aim to reduce the workload of developers by offering them a write-once-run-everywhere approach. In this session, Wei-Meng will take a quick look at the different frameworks available – Xamarin, React Native, and Flutter. He will focus on using Flutter and see how it makes your life as a mobile developer easier.
(Language – English)
Wei-Meng Lee is a technologist and founder of Developer Learning Solutions (http://www.learn2develop.net).
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be LazyInfinum
Although developing software using best practices gives us great benefits, it requires writing boiler plate code and imposes overhead on the development process. This presentation demonstrates our experience with the development of an Android Studio plug-in that reduces the cost of development in most common scenarios.
Storyboarding is an exciting new feature in iOS 5 that will save you a lot of time building user interfaces for your apps. With a storyboard you have a better conceptual overview of all the screens in your app and the connections between them.
This slide explains a simple Android library called Debot.
Debot offers features that are useful to debug Android applications. Those features can be added to any activity that has the toolbar menu. Also, developers can easily add their own custom debugging features with simple steps.
https://github.com/tomoima525/debot
Responsive Design - Ideal Solution For Managing Search In A Multiscreen WorldTrighton Interactive, LLC
Jody Resnick, CEO of Trighton Interactive, presentation from SMX Advanced 2013 in Seattle. Consumers use multiple devices every day. Maybe they start on a smartphone, move to a PC during at work hours, check the smartphone periodically and finish the evening at home on a tablet. Search is a central part of all these experiences. Research that begins on one device may conclude with a transaction on another…or in a physical location. How do marketers address this new, vastly more complex consumer behavior?
This session offers answers, exploring organic and paid search optimization across screens as well as best practices for tracking and calculating ROI. In addition to tactical advice, speakers will present case studies showcasing the challenges and opportunities of this new multiscreen world.
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...DevClub_lv
Maintaining multiple code bases for the same application is often a pain in the neck for mobile developers. In the recent years, different frameworks have appeared in the market that aim to reduce the workload of developers by offering them a write-once-run-everywhere approach. In this session, Wei-Meng will take a quick look at the different frameworks available – Xamarin, React Native, and Flutter. He will focus on using Flutter and see how it makes your life as a mobile developer easier.
(Language – English)
Wei-Meng Lee is a technologist and founder of Developer Learning Solutions (http://www.learn2develop.net).
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be LazyInfinum
Although developing software using best practices gives us great benefits, it requires writing boiler plate code and imposes overhead on the development process. This presentation demonstrates our experience with the development of an Android Studio plug-in that reduces the cost of development in most common scenarios.
Storyboarding is an exciting new feature in iOS 5 that will save you a lot of time building user interfaces for your apps. With a storyboard you have a better conceptual overview of all the screens in your app and the connections between them.
This slide explains a simple Android library called Debot.
Debot offers features that are useful to debug Android applications. Those features can be added to any activity that has the toolbar menu. Also, developers can easily add their own custom debugging features with simple steps.
https://github.com/tomoima525/debot
Presentation on the principles, philosophy and a few applications of object oriented programming along with a few pointers on how to effectively code. Presented at a session aimed at undergrad computer science students at the University of Pune.
Present along with Mr. Anirudh Tomer and Mr. Toshish Jawale.
Similar to (Android) Developer Survival in Multiscreen World, MobCon Sofia 2016 (20)
TDD on android. Why and How? (Coding Serbia 2019)Danny Preussler
We all heard about TDD: test-driven development. The one side says: It produces better code and fewer bugs, other's see a waste of time. How much time does TDD cost? Does it even work on Android? Is it possible to develop an android app fully test driven? Should we do it? And if: should we only test Java classes? Should we use or avoid Robolectric? How do I even start?
We have all heard about TDD: Test Driven Development. It produces better code and leads to fewer bugs. But, in our daily Android lives, why aren’t we doing it? Is it possible to develop an Android app that is fully test driven? Where do you start? Should you only test Java classes? Should you use or avoid Robolectric?
Junit5: the next gen of testing, don't stay behindDanny Preussler
Junit 5 is a big step for the world of unit testing. A new very flexible testing framework, based on learning from many years of Junit 4.
At sporttotal we use this for our Android unit tests and it changed the way we write tests. Hard for us to imagine living without features like @Nested. Other features we ignored as those are more leaning towards Java and are solved already by Kotlin or other Kotlin libraries. And some features are even breaking changes. How do you test on Android in a world without TestRunner and TestRules?
Android testing team was always very slowly in adopting to new Junit versions, so how far can we bypass this?
Let's do a deep dive into Junit5, how it works and how we can use it on Android
Demystifying dependency Injection: Dagger and ToothpickDanny Preussler
Dependency Injection, that's the thing that Dagger2 does, right? For most of us, it's black magic. Let's look deeper how DI works. And then we better understand the frameworks that are out there. This session introduce Toothpick that was created this year and is already used by millions of users as driven a lot by engineers at Groupon.
What was their need? What's wrong with Dagger?
Toothpick was designed to bring goodies from Guice to modern mobile world. It focuses on scopes and unit testing without loosing performance as Roboguice did.
Unit testing without Robolectric, Droidcon Berlin 2016Danny Preussler
Are you bound to flaky, slow Robolectric Tests? Do you want to know a way out of it? This session shows ideas and concepts to replace Robolectric from your test code base
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
4. So you want to go multiscreen?
• Phone (already lots of screen sizes)
• Tablet
• TV
• Wearables
• Car
• eReader
• Netbooks
5. The multi-apks Zombie
•Product view: different apps
•Developer view: all the same
•Remember tablet apps?
That approach failed
Zombie pilot statue by Gage Skidmore, CC by 2.0; flickr.com/photos/gageskidmore/8800037473
6. One apk to rule them all!
OneRingtorulethemallbyidreamlikecrazy,flickr.com/photos/purple-lover/13583362554
7. The Library-Zombie
• Remember the jar-hell?
• Unneeded Overhead
• Versioning problem
• Prevents continuous
refactoring
Zombie statue by PROGage Skidmore, flickr.com/photos/gageskidmore/7283588922
10. Remember? The shiny new world of
Honeycomb
• Left-detail complex to implement
• UX was bad
• multi columns discouraged since Material FAILED
Fragments still important
building block
12. •Remember the buckets?
Small, medium, large
Deprecated
since 2.3!
It‘s the new
iOS way ;)
Fire Buckets by Steve Greer; flickr.com/photos/steviegreer/2919157836/
13. • Don‘t think sizes think sizes and resolutions!
• ..the amount of space your layout needs:
• Available screen width/height
• Smallest width
• TV not so different, has own bucket
combine them!
16. DONT
•...code it!
•DO: use dimen and integer xml files instead of
checking for orientation
public boolean isPortrait() {
return configuration.orientation ==
Configuration.ORIENTATION_PORTRAIT;
}
17. DONT
• Bye bye activity cast pattern
• Has tight coupling even for interfaces = bad
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.parent = (NiceInterface)activity;
}
30. DONT
• ...Hardcode navigation in activities and fragments
• DO: abstract it!
public class PromotionsTileFragment extends Fragment {
DashboardInteractor interactor;
...
public void onNextButton() {
interactor.moveToNextScreen();
}
}
31. DONT
• ...Write code like if(isTablet())
• Do: Try code-kata: program without if
• Do: Move to XML as much as possible
32. DO
• Inject dependencies
• Put the bad „if“ as early as possible:
@Provides
DashboardInteractor provideStatInteractor() {
if (isTabletLayout()) {
return new DashboardTabletInteractor();
} else {
return new DashboardPhoneInteractor();
}
}
public class PromotionsTileFragment extends Fragment {
@Inject DashboardInteractor interactor;
...
}
33. DO
• Move all device specific code into components or custom views
• Example: tablet specific toolbar setup code should go into a
TabletToolbar
• ALWAYS have one activities with
• different layouts
• single layout with differences in other xml values
• different injected components
• Careful: differnet styles need to break this rule, avoid!
34. DO
•Use for fragments
and activities
• Viewholder
= opposite of binding‘s
viewmodel
public class CardViewHolder {
@InjectView(R.id.card_border) View
borderView;
@InjectView(R.id.ok) ImageButton okButton;
view holder outside of lists
35. DONT
• ... Repeat yourself
• also valid for XML
Include/merge layouts
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
style="@style/Match">
<include layout="@layout/fullscreen_progress"/>
</RelativeLayout>
36. DONT
• ... Repeat yourself
• also valid for XML
Use styles
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
style="@style/Match">
<include layout="@layout/fullscreen_progress"/>
</RelativeLayout>
37. DONT
• ...Do only the common denominator
• Remember iOS vs android push notifications
Common denominator apps did not have quick
actions = really bad UX
38. DONT
• ...Do only the common denominator
• Use WearableExtender for example more quick
actions
I am user of all those, IamWatch, GoogleTV, Google Glass
Api/platform advocates tell you where
Designers tell you how look like
YOU have to implement
Smart homes
Copy & paste kills!
Give your users one source of truth
Give your users one source of truth
Keep in mind for architecture
Lets go back to first idea of „multiscreen“
Lets check teh UI approach first
How many did android in gingerbread?
How many are using this?
first days said xlarge is tablet
Smallest Width (does not change on rotation),
All about layout folders
One direction to grow at least!
Collapse iOS uis
Ist not only about layouts, its all your values
Will not work on long fragment chains
example of fragment stack
Works well with the entry point philosophy
Keep even for rx!
How can that be achieved...
Tablet should not have phone code
WearableActivity LeanBackActivity
No startactivity, no fragment transaction
ALWAYS have one activity and then different layouts with different fragments/views
ONLY excuse would be a flow activity only used on one OR different styles, which should be avoided
Can then be reused even on different Activities/Fragments
Encapsulates views, decouples views from fragments
Crossroads: Success or Failure by Chris Potter; CC b 2.0 flickr.com/photos/86530412@N02/8226451812/