-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IOS and Android app using flutter #2545
Comments
We have no plans to produce a mobile app. We are discussing the possibility of creating a "libkdbx" from our core code, but that would be in C++ using Qt. |
When there is an official browser extension why not a hybrid native app ? I personally feel this is the only missing link affecting the widespread adoption of keeppassxc. |
@droidmonkey - what is the status of this? https://github.com/keepassxreboot/keepassxc-specs. Maybe the core team isn't currently planning to develop App - no worries, I am sure someone in the community would be interested.. Just trying to figure out what it would take (I am interested) I can see an MVP being
I am purposely not including generation as that would require hopping into C++ land, which IMO Flutter isn't all that great with. @kishaningithub - I'd be interested in collaborating... |
In native open source app space, These are the ones i could find For Android, For iOS, I personally use MiniKeePass as i am using ios. @vnagendra This has support for
both of these features are "opt-in" I personally thought an hybrid app with an inclusion into KeePassXC organization would unify the community. |
This would take a separate team (one with mobile experience and the toolchains and testing gear necessary) to adopt the product. It would only be truly "ground breaking" if you are running the libkdbx in native code to gain a tremendous speed boost over Java/Kotlin/Dart/C#. If an MVP is developed with bindings to a minimal libkdbx we could adopt that into our GitHub organization and let a team loose on it. The current native apps certainly serve their purpose and do it well. I would personally love to see a "KeePassXC" app in the Play Store at the very least. @vnagendra that is currently being worked on by @phoerious. I am pretty sure he is going to be finalizing it by the new year. |
I will have some time over the holidays I think (hope). :-) |
@droidmonkey - Thanks. Just to make sure I understood your references correctly
that here refers to
and not the MVP? I am not entirely convinced that a speed boost should be the goal here. I am not saying that's not important, having a unified c++ (or whatever) code is good from a security standpoint - less things to go wrong, whether it's the implementation or the underlying libraries that support crypto. While I don't profess a lot of experience in the Dart or Kotlin crypto toolkits - the idea of all the "front ends" (like Apps, MacOs or whatever) having their own crypto implementation - isn't appealing. However if we were to go down this path with Flutter + libkdbx (which is where the thread started) -- we will need to wait for this - flutter/flutter#7053 |
I think that referred to the keepassxc-specs repository. |
hahaha. Perfect. I wasn't even close :) |
They really 1.0'd flutter without native code bindings? That's a core feature of Android SDK. |
Now we are definitely off chasing bunnies 😃 Yes, Flutter 1.0 doesn't have FFI - but it has native bindings. When it's cross platform, "Native" takes a different meaning I suppose. Either way for any of my use cases -- Flutter works beautifully. This issue is talking about FFI, which is calling C/C++ code directly, not Android/iOS native Java/Swift code directly. The latter is supported today. |
What does FFI stand for? I never seen that acronym before. By "native" I am referring to code compiled down to machine language (i.e., not interpreted or byte code). Java is not native, it requires a virtual machine to interpret the byte code into machine code (Just In Time compilation). |
FFI == Foreign function interface Basically in the Flutter world you can "talk to" a native thing -- the thing typically is a So in the Android world it's a little wonky -- but let's take the example of an iOS App. The Swift code (or Objective C) is generally compiled to binary. In the Android world - it's an APK, which is in byte code. Typically in a mobile App, especially in a cross-platform thing like Flutter -- when developers want to talk to native -- they are talking about a ViewController, Activity or somesuch. If you are coming from a C world though - you'll be thinking C libraries of some sort. In Java land this is JNI (I believe) -- I try to stay away from Java land, so my acronyms may be tiny bit off. In Swift this is just an external lib (either statically or dynamically linked) in your App (added as part of building the App). Flutter currently supports calling a ViewController, Activity etc., You could in theory currently just go through Java code to C++ land. This requires a lot of ceremony and magic incantations. The issue (on Flutter that I linked to) is talking about directly without ceremony calling C++ code (or some other object library). That is not currently supported. When that is supported, we can figure out a plan for supporting the C++ code provided by KeepassXC rather than writing our own code to do the crypto parts. I am happy to pitch in and help out. |
Cool thanks for the explanation. I have a good amount of Android app experience using Java and then Kotlin. I don't want to learn Dart just yet so I am holding off on Flutter atm. |
So I took the dive into Flutter (and Dart) and actually enjoyed it. Very easy to use. I absolutely hate the endless closures and indentations though. Also, it looks like Flutter has pegged Q1FY19 to introduce the FFI capability. |
Hi, is there any news about using flutter for a cross-platform mobile keepassxc version? |
Not going to happen anytime soon. There are plenty of great Android apps and one actively developed iOS app that is fully compatible. |
Well it couldn’t have happened until now anyway. Finally looks like Dart 2.5 now supports FFI - so any projects that may want to do this can finally start. It was also released today (it appears) |
@droidmonkey Could you tell a name of that app? I found only strongbox. |
Strongbox is the recommendation. |
Thanks |
@droidmonkey, I might regret asking this in public, but is there a reason why KeePassXC's endorsement omits KeePassium? |
Maturity mainly, tbh |
Fair enough, thanks for the response. |
What is annoying in KeePass and KeePassXC is that there are no official mobile apps. I fear that this is too much work for this project and that this idea gets rejected. |
@droidmonkey How much money must be donated for this feature request? |
This feature request would cost about $15,000 (minimum) if you want to be realistic. 😄 |
😱 SHOCK |
I also want to have an Android app |
@phoerious suggested in a chat that maybe a cooperation with Keepass2Android (we use the Keepass2Android app with a KeePassXC rebrandung). |
Careful, before we spread rumors here. That is what I see as the most probable path something like this would happen. It does not mean in any way that the KP2A maintainer is on board with this, nor have we even asked him. |
@phoerious Sorry if my posting was misunderstood (or mot written correctly). |
It's alright. I just don't want somebody to read this, take it as a fact, and write a blog article about it or so. This is a rather large project after all. |
We do not have any immediate plans or capacity for developing separate mobile apps at the moment. The development of a simple mobile UI for a libkdbx may become simpler in the future, though: #5717 |
As flutter has reached its 1.0 stage. Do you have plans to make an official ios and android app using the same?
I am thinking of creating a library to read and write kdbx files in dart and then create ios and android apps using the flutter framework on top of it. What do you think ?
The text was updated successfully, but these errors were encountered: