Dive into Kotlin Delegation implementation to solve the obfuscation issue PRADA Hsiung
This document discusses implementing Kotlin delegation and solving Proguard issues. It provides two solutions to an issue where the "No BuiltInsLoader implementation was found" exception is thrown after Proguard strips metadata files. Solution 1 is to add the kotlin-reflection library, which increases APK size by 100KB. Solution 2 is to add a new Proguard rule to exclude kotlin library classes and metadata files from being stripped. The document also provides references to related issues and hiring opportunities.
Job-to-be-done theory to practice : Ch4 ProcessPRADA Hsiung
This document discusses applying Jobs-to-be-Done (JTBD) theory to practice. It outlines the key steps in a JTBD process including conducting competitive analysis, formulating an innovation strategy, targeting hidden growth opportunities, and formulating market and product strategies. It provides examples of how Motorola segmented users based on the specific jobs they needed to get done. The document emphasizes that JTBD helps align product offerings with customer needs and communicate value propositions based on outcomes important to customers.
Dive into Kotlin Delegation implementation to solve the obfuscation issue PRADA Hsiung
This document discusses implementing Kotlin delegation and solving Proguard issues. It provides two solutions to an issue where the "No BuiltInsLoader implementation was found" exception is thrown after Proguard strips metadata files. Solution 1 is to add the kotlin-reflection library, which increases APK size by 100KB. Solution 2 is to add a new Proguard rule to exclude kotlin library classes and metadata files from being stripped. The document also provides references to related issues and hiring opportunities.
Job-to-be-done theory to practice : Ch4 ProcessPRADA Hsiung
This document discusses applying Jobs-to-be-Done (JTBD) theory to practice. It outlines the key steps in a JTBD process including conducting competitive analysis, formulating an innovation strategy, targeting hidden growth opportunities, and formulating market and product strategies. It provides examples of how Motorola segmented users based on the specific jobs they needed to get done. The document emphasizes that JTBD helps align product offerings with customer needs and communicate value propositions based on outcomes important to customers.
This document discusses reactive programming and multi-threading in Android. It introduces the need for threads to avoid UI blocking. It then discusses common threading problems like progress updates and dependencies. It presents solutions from Google like AsyncTask and Handler/Looper as well as Java utilities. It also discusses deferred-promise patterns from libraries like Bolts and RxJava concepts like explicit execution and cancellation. It advocates for RxJava as a way to more easily manage threads and transformations with fewer side effects.
Why reactive programing matter, and how PicCollage adaptive it.PRADA Hsiung
The document discusses PicCollage's journey to adopting reactive programming in their Android applications. It outlines why reactive programming is important, how PicCollage struggled with threading issues originally, and the steps they took to transition to reactive programming. This included first making UI interactions reactive, then implementing reactive threading mechanisms, making their data layer APIs reactive, and finally making controllers reactive as well. The document provides references and recommendations for learning reactive programming.
This document discusses Dart and Flutter. Dart is a programming language similar to Java but with advanced features like async functions, optional methods, mixins, and first-order functions. Flutter is a UI framework for building mobile, desktop and web apps using Dart. It does not provide a full UI framework like GWT as developers may not want to reuse components across platforms. Examples of Flutter features mentioned include hot reload, the element inspector, and support for touch events.
This document discusses how Jobs-to-be-Done (JTBD) analysis shaped Uber's latest app update. It analyzes Uber's core job of bringing riders to their destination as fast as possible and compares it to competitors like public transit, taxis, and Lyft. It then describes how Uber enriched the riding experience through features like Uber Feed which integrate food ordering and social sharing to better fulfill the job. The document raises questions about how JTBD could improve onboarding and calls integration between Uber and Yelp into question.
This document discusses using Unity and ARInterface to enable cross-platform AR development. It recommends starting with Unity3D to write code once and deploy to both ARKit and ARCore platforms. It also provides sample code links and specifications for ARKit and ARCore, warning of version requirements needed to use ARCore plugins from Unity.
JSON's big problem android_taipei_201709PRADA Hsiung
The document discusses parsing large JSON files and compares different JSON parsing libraries and approaches. It recommends a streaming approach for performance over the traditional approach if performance is important. It also notes that the sketch path data in collage editing JSON may not be needed.
This document summarizes the journey of developing an ARKit app in Unity3D. The original team encountered several challenges including changing ARKit APIs, needing to purchase plugins for features like sharing and storage, and performance issues with Unity's ARKit plugin. They overcame these obstacles by writing bridge code between Unity and native iOS code to access ARKit, Metal, and AVFoundation APIs for better performance and video recording support. While Unity provided cross-platform benefits, a custom native app would have better UI performance and control without dependencies on Unity plugins.
This document outlines the modules, libraries, and components that make up an Android application for creating collages. It describes the purpose and responsibilities of each module, including lib-image-loader for loading images, lib-util for shared utilities, lib-component for common components, lib-widget for widgets, lib-reactive for reactive programming, lib-history for undo/redo, and lib-collage-editor for editing collages. It also addresses some questions about where certain components should be located and future plans to add additional modules.
1) The document discusses various face detection APIs for building a face detection camera app on Android, including android.media.FaceDetector, android.hardware.Camera.FaceDetectionListener, Google Mobile Vision SDK, OpenCV, and Dlib.
2) It compares the APIs based on factors like footprint, ease of use, supported face information, speed and minimum SDK version.
3) The document also addresses challenges like converting YUV camera preview frames to RGB and handling callbacks, promoting the use of reactive programming to address these issues.
This document discusses problems with the Android app ecosystem and solutions provided by Google. It outlines three main problems: 1) It is hard to build an awesome app, 2) It is hard to acquire more users, and 3) It is hard to make money. It provides details on services like Firebase, Instant Apps, and AI/ML tools that can help address these problems. These include solutions for app development, user acquisition, and monetization.
we had talk about how to run the ML algorithm on Android App, it showed how tensorflow work with the training part in python, and consume part on the client
This document discusses using Firebase for A/B testing and analytics. It provides steps to set up Firebase remote config and analytics for A/B testing an app design. Previously, the company built its own A/B testing framework, but it slowed release cycles. Firebase offers a powerful configuration system and real-time analytics. The document outlines setting up Firebase for a project manager and developer. It also shares results after a week that bottom navigation performed best. In summary, Firebase provides an easy integration for A/B testing and analytics with a small library size, but has some limitations around device support and analytics capabilities.
臉 - The Face Detection Functions on AndroidPRADA Hsiung
The document discusses various face detection options for Android, including the android.media.FaceDetector class, android.hardware.Camera.FaceDetectionListener interface, Google Mobile Vision SDK, and OpenCV library. It provides information on the memory footprint, camera integration capabilities, customizability, ease of use, minimum SDK version, and type of information returned for each option. Overall, it analyzes and compares the tradeoffs of different face detection approaches that can be implemented on Android.
This document discusses Facebook's efforts to build better developer tools and platforms. It mentions that Facebook has 40 apps that received VIP treatment in Taiwan, with Messenger being the only one from Taiwan. It also discusses Facebook's Messenger SDK and platform, Parse for IoT, Oculus VR, open source projects like React Native and Fresco, improved security through Graph API updates, fun new areas like VR and Messenger, and the goal of connecting more users through initiatives like Internet.org. The document outlines Facebook's focus on building better SDKs and platforms, releasing more open source code, increasing security, adding new features, and bringing more users online.
This document summarizes the speaker's experience over several years working with various image loading libraries for Android. It describes using AsyncTasks initially for image loading in PicCollage apps. It then evaluates several popular image loading libraries (Android Query, Universal Image Loader, Picasso, Volley) and notes their features like default cache size and approach to image loading. The document also discusses using Retrofit and Ion libraries and compares various aspects of the default libraries.
The document discusses an Android developer's experiences using OpenCV for image processing tasks in Android applications. It mentions using OpenCV for tasks like converting between RGB and YUV color spaces, applying filters like Laplacian, and chaining or running tasks in parallel. OpenCV provides high performance image processing and avoids issues with fragmentation in the Android camera APIs. Examples are given of using OpenCV to record video and do face detection.
The document discusses the benefits of using Jenkins for continuous integration (CI). It describes some common problems in development workflows without CI, like wasted time and difficulty in ensuring quality and consistency. With Jenkins, development and testing can be automated, issues are caught early, and quality is improved. Jenkins provides a easy to use, extensible platform to help teams work better together and spend more time on meaningful work.
This document discusses reactive programming and multi-threading in Android. It introduces the need for threads to avoid UI blocking. It then discusses common threading problems like progress updates and dependencies. It presents solutions from Google like AsyncTask and Handler/Looper as well as Java utilities. It also discusses deferred-promise patterns from libraries like Bolts and RxJava concepts like explicit execution and cancellation. It advocates for RxJava as a way to more easily manage threads and transformations with fewer side effects.
Why reactive programing matter, and how PicCollage adaptive it.PRADA Hsiung
The document discusses PicCollage's journey to adopting reactive programming in their Android applications. It outlines why reactive programming is important, how PicCollage struggled with threading issues originally, and the steps they took to transition to reactive programming. This included first making UI interactions reactive, then implementing reactive threading mechanisms, making their data layer APIs reactive, and finally making controllers reactive as well. The document provides references and recommendations for learning reactive programming.
This document discusses Dart and Flutter. Dart is a programming language similar to Java but with advanced features like async functions, optional methods, mixins, and first-order functions. Flutter is a UI framework for building mobile, desktop and web apps using Dart. It does not provide a full UI framework like GWT as developers may not want to reuse components across platforms. Examples of Flutter features mentioned include hot reload, the element inspector, and support for touch events.
This document discusses how Jobs-to-be-Done (JTBD) analysis shaped Uber's latest app update. It analyzes Uber's core job of bringing riders to their destination as fast as possible and compares it to competitors like public transit, taxis, and Lyft. It then describes how Uber enriched the riding experience through features like Uber Feed which integrate food ordering and social sharing to better fulfill the job. The document raises questions about how JTBD could improve onboarding and calls integration between Uber and Yelp into question.
This document discusses using Unity and ARInterface to enable cross-platform AR development. It recommends starting with Unity3D to write code once and deploy to both ARKit and ARCore platforms. It also provides sample code links and specifications for ARKit and ARCore, warning of version requirements needed to use ARCore plugins from Unity.
JSON's big problem android_taipei_201709PRADA Hsiung
The document discusses parsing large JSON files and compares different JSON parsing libraries and approaches. It recommends a streaming approach for performance over the traditional approach if performance is important. It also notes that the sketch path data in collage editing JSON may not be needed.
This document summarizes the journey of developing an ARKit app in Unity3D. The original team encountered several challenges including changing ARKit APIs, needing to purchase plugins for features like sharing and storage, and performance issues with Unity's ARKit plugin. They overcame these obstacles by writing bridge code between Unity and native iOS code to access ARKit, Metal, and AVFoundation APIs for better performance and video recording support. While Unity provided cross-platform benefits, a custom native app would have better UI performance and control without dependencies on Unity plugins.
This document outlines the modules, libraries, and components that make up an Android application for creating collages. It describes the purpose and responsibilities of each module, including lib-image-loader for loading images, lib-util for shared utilities, lib-component for common components, lib-widget for widgets, lib-reactive for reactive programming, lib-history for undo/redo, and lib-collage-editor for editing collages. It also addresses some questions about where certain components should be located and future plans to add additional modules.
1) The document discusses various face detection APIs for building a face detection camera app on Android, including android.media.FaceDetector, android.hardware.Camera.FaceDetectionListener, Google Mobile Vision SDK, OpenCV, and Dlib.
2) It compares the APIs based on factors like footprint, ease of use, supported face information, speed and minimum SDK version.
3) The document also addresses challenges like converting YUV camera preview frames to RGB and handling callbacks, promoting the use of reactive programming to address these issues.
This document discusses problems with the Android app ecosystem and solutions provided by Google. It outlines three main problems: 1) It is hard to build an awesome app, 2) It is hard to acquire more users, and 3) It is hard to make money. It provides details on services like Firebase, Instant Apps, and AI/ML tools that can help address these problems. These include solutions for app development, user acquisition, and monetization.
we had talk about how to run the ML algorithm on Android App, it showed how tensorflow work with the training part in python, and consume part on the client
This document discusses using Firebase for A/B testing and analytics. It provides steps to set up Firebase remote config and analytics for A/B testing an app design. Previously, the company built its own A/B testing framework, but it slowed release cycles. Firebase offers a powerful configuration system and real-time analytics. The document outlines setting up Firebase for a project manager and developer. It also shares results after a week that bottom navigation performed best. In summary, Firebase provides an easy integration for A/B testing and analytics with a small library size, but has some limitations around device support and analytics capabilities.
臉 - The Face Detection Functions on AndroidPRADA Hsiung
The document discusses various face detection options for Android, including the android.media.FaceDetector class, android.hardware.Camera.FaceDetectionListener interface, Google Mobile Vision SDK, and OpenCV library. It provides information on the memory footprint, camera integration capabilities, customizability, ease of use, minimum SDK version, and type of information returned for each option. Overall, it analyzes and compares the tradeoffs of different face detection approaches that can be implemented on Android.
This document discusses Facebook's efforts to build better developer tools and platforms. It mentions that Facebook has 40 apps that received VIP treatment in Taiwan, with Messenger being the only one from Taiwan. It also discusses Facebook's Messenger SDK and platform, Parse for IoT, Oculus VR, open source projects like React Native and Fresco, improved security through Graph API updates, fun new areas like VR and Messenger, and the goal of connecting more users through initiatives like Internet.org. The document outlines Facebook's focus on building better SDKs and platforms, releasing more open source code, increasing security, adding new features, and bringing more users online.
This document summarizes the speaker's experience over several years working with various image loading libraries for Android. It describes using AsyncTasks initially for image loading in PicCollage apps. It then evaluates several popular image loading libraries (Android Query, Universal Image Loader, Picasso, Volley) and notes their features like default cache size and approach to image loading. The document also discusses using Retrofit and Ion libraries and compares various aspects of the default libraries.
The document discusses an Android developer's experiences using OpenCV for image processing tasks in Android applications. It mentions using OpenCV for tasks like converting between RGB and YUV color spaces, applying filters like Laplacian, and chaining or running tasks in parallel. OpenCV provides high performance image processing and avoids issues with fragmentation in the Android camera APIs. Examples are given of using OpenCV to record video and do face detection.
The document discusses the benefits of using Jenkins for continuous integration (CI). It describes some common problems in development workflows without CI, like wasted time and difficulty in ensuring quality and consistency. With Jenkins, development and testing can be automated, issues are caught early, and quality is improved. Jenkins provides a easy to use, extensible platform to help teams work better together and spend more time on meaningful work.