JetPack Compose for library development - android-jetpack-compose

We are about to start greenfield development of an Android library and considering using JetPack Compose for UI elements used there.
I know that one restriction to consider is API 21+ (not really a problem).
Are there any other reasons to use or not use Jetpack Compose for library development?

Well I'm not sure if that's a definite "no" for usage (that's rather subjective), but you have to bring the dependency on the compose along with the library. This will affect the library and app size

Related

What difference kotlim and compose?

I started studying kotlin and came across a lot of questions that I can't find: what is the difference between kotlin multiplatform and compose multiplatform? can they work together in the same project? what is more primary?
All I understood from the official documentation is that kotlin multiplatform is a framework for development on a variety of systems and compose multiplatform is an adaptation of compose from android
Kotlin Multiplatform is a language definition and set of tools that lets you write Kotlin and compile it to a wide range of platforms: JVM/Android, JS, iOS, Macos, Windows, Linux, etc (WASM in progress). It is agnostic about what you do with it. Also, some code can be compiled for all targets (common Kotlin), and some is platform-specific.
Compose UI is a library for writing UI's. The vast majority of effort and the only really "production ready" implementation is for Android. However, compose for Desktop running on the JVM is being used by many teams. Compose UI for web exists, although I'm not sure how much use that gets. Compose for iOS is in the works. We published an app with it recently (https://touchlab.co/droidcon-nyc-ios-app-with-compose/), but I wouldn't use it for a production project yet, but in the not-too-distant future potentially.
All of the non-android platforms use Kotlin Multiplatform to build Compose UI. It's sort of like SwiftUI uses Swift. They're related, but Swift is it's own, much more mature, thing.

Is it possible to customize your desktop through the electron framework?

I'm working on a project in which the user will be able to change windows app icons through an application. Is it possible to have electron perform such a task or is it impossible for the electron framework to actually communicate with windows like that?
I sadly can't proof that but
I think it is possible. You could for example use Child Process and spawn processes that do things for you or write your own c/c++ modules. You can actually write c/c++ node functions, classes and so on, wrap them and use them in nodejs. Here to the Reference. Be aware though, if you don't find any pre-made solutions you have to do that for every operating system individual!

Is any possibilities to use ANT UI Design in Electron Desktop App Framework?

I have found so many facility to use javascript, Angular, material design ui with Electron App Framework, I would like to know, is there any possibilities to use ANT UI for my desktop application? At-least some work around.
Yes
The short answer is yes. Electron provides an entire NodeJS environment and allows you to use common Node, Javascript and React toolsets.
In fact, Electron is listed as an officially supported environment on their Github page.
That being said, it's a very diverse library so there might be occurrences where a particular component is not supported or might need tweaking to be compatible with the Electron environment.
Update
The company I work for actually had to do this for a project we're working on so I can officially confirm that it works great.

React-Native Select List Overley

If I have a component/container form that allows a user to select a group, I am not hip to what the component/ux should be for this, but I would imagine a select list overlay type deal, am I wrong in assuming this? Why is this not available in the react-native core? The picker for android offers this, but it seems like the iOS version is just the slot machine style picker. Am I missing something?
Is the Picker only the slot machine on iOS or is there a way without bringing in a third party component to provide this functionality for both iOS and Android?
I assume you understand that React Native is not hybrid application like phone-gap. React Native actually pulls out the native controls off of operating system. That is why, you are seeing slot-machine like picker in iOS and material-style picker in Android.
What you need to grok is that React Native is not meant to build cross-platform applications with "same" codebase. The codebase will change a little bit depending upon the OS.
You'll want to keep your business logic separate from the UI components or views, so that you can reuse the business logic in Android and iOS. UI components will differ for obvious reasons. For eg. You will not need Android Toolbar in iOS application, because there is no such thing as toolbar available natively in iOS. Similarly you will not find NavigationBarIOS in Android.
Bottom line- keep your UI components separately in a "components" folder. You can pull out desired components from "components" folders depending upon the OS.
For reference, please go through this. This is my example project back from the days when I was learning react-native. So do expect it to be very amateur-level code. Repo. You can see how I have kept things separately. Good luck!

Clojure iOS Development

Over the past months, I've pretty much fallen in love with Clojure and refuse to use anything else.
I am aware that there is ClojureScript, which uses Google Closure to compile a subset of Clojure to JavaScript.
Is there anything similar in the works for Objective-C/Cocoa?
I would love to be able to prototype applications in Clojure, and then get an iOS app out of it.
[I'm perfectly fine if this prevents me from all the low level details of iOS -- I don't need access to any low level details (say pointer arithmetic) that I can't do in Java -- I just want to be able to easily transform my Clojure Apps onto the iOS]
You can run clojure on iOS by compiling clojure to scheme, https://github.com/takeoutweight/clojure-scheme
There's one more option (warning: haven't tried it yet):
https://github.com/oakes/lein-fruit
This Leiningen plugin translates Java bytecode to native code for iOS. And there's even IDE that has it built-in:
https://github.com/oakes/Nightcode
I've just discovered las3r which is a Clojure port to the ActionScript (the language behind Flash) runtime. Since Flash/ActionScript can now develop for iOS (I'm in the process of writing a game right now. It's not wonderful, but it's quite usable), this may present a path to writing Clojure applications for iOS.
DISCLAIMER: I haven't tried this. I've just barely discovered las3r, haven't even downloaded it. and have no idea if it's good or terrible. I don't know how awful the speed will be. I know nothing.
Still - it's an intriguing idea, isn't it?
There is Re-Natal a simple command-line utility that automates most of the process of setting up a React Native app running on ClojureScript.

Resources