 Hello party people of the K West chaos West stage. How are you guys doing? It is my honor to introduce to you a well-known man known by the name of Dimi who is presenting about a Android wallet Which has amazing features. Is that right Dimi? Yes, that's right. Okay. The floor is all yours Thank you Privacy is a human human right and Monero I think Also stands for this for this concept and today I was asked to talk about Muno Ruyo the Munero Android app that I made in the beginning alone and then with a team of designers around the world So in the next 30 minutes, I will show you my journey and in the end we can have some questions and answers Open source software I will be talking about Have to press here as well Okay Open source software what tools we use The wallet itself what kind of conversations there are about it what security issues may or may not be in it Then we have some presentation about the team behind Muner Ruyo so you can see the real people and Our newest feature the XMRTO integration with With which you can pay bitcoins directly from the wallet using only Monero Okay Floss free Libre open-source software. What does it mean for me? Well, it's free. It doesn't cost anything It's open-source everyone can look at it everyone can download the code inspect it see if they like it see if they don't like it and One thing I learned in this project. It also means very importantly There are no obligations for the developers. I can do whatever I want my team can do whatever we want And I can stop at any time and leave because it's free Open source software encourages collaboration because well the source is out there Anyone can participate. So if you want to be part of the Monero movement, you can download Monero Install it check it out Anyone can fork it Forking means you just make a copy of it and continue your own strain of whatever you are doing. I Called this first part floss starting at zero because I had actually no Previous experience with actually participating in an open-source project I have more than 30 years experience in software development and hardware development, but Not not so not so open The first point I think is very important and it's why I've managed to stay so long with this project. Let the project find you I started in this year in the beginning of this year looking at cryptocurrencies What that's all about research for a month or so and Came up with okay Monero is me and I am Monero So I wanted to do have something there The vision was at that point. There was no no mobile wallet for Monero and the community simply needed one so what you want to change and Why do you want to change it you should just know these things otherwise you won't be able to Get very far I think the howl just happens later on open source software is Hosted public in this case the core is Monero itself the Monero core It's hosted hosted on github Which is a git repository? Which is really really horrible. I just watched the talk by Lino Storvaltz the other day explaining what's behind the git and His philosophy was what would CVS not do So dealing 20 years with CVS that was a big problem for me and you just can't change it just takes time You need to get the code running if you want to participate in such an open source software, of course You need to set up your environment Most instructions you find online are not complete. They would just not work for you It didn't they do not work for me It took several weeks to get everything set up and running Read the code understand the code structure So you know where you can do stuff on where the voodoo happens don't don't touch that So I said good. I will try this Android wallet. I have some spare time. Let's see what what I can do out of it With the basic idea if you build it he will come If you build it they will use it or if they don't then you can just stop at any point So I did at first I did it for myself so I can have an Android app where I could use Monero So I'm my own customer For me, it's important to have a short short implementation cycles where with every cycle you have more functionality You see that something is happening. It's pointless to have a three-year plan of well in three years We will have an Android wallet. It just won't happen ever So That's the one thing the other thing is I wanted to be the first and I did not believe that's possible because everyone was working on the Android wallet. Well, there still are working on the actual wallet mmm, and of course you can also post it into the internet Post it into I use mostly reddit for for information and to see what the community thinks of it It's the crypto world. Everyone is paranoid But somehow it worked out Accept all input means and Be open the next point Assume everyone involved is just smarter than you because they are so accept everything They tell you and evaluate it discuss it and you can Do whatever you want anyway Try to avoid Adding new functions for our cycle. So if you say, okay, I want to release every two weeks Decide, okay, what is it? I want to release what new function is there? Is it two weeks? Maybe it's three weeks, but just stick to the functions and don't say oh, but this is also cool I will add that that's a Well, or you will never finish and there's a really big functions where you need a couple of months Then just break it down into smaller blocks Which is nearly always possible because they're always small functional blocks you can you can add implement deploying parts here So if it's good if it's good then others will join they can see that something's happening. It's worth it's worth the time So others will join the project they will either submit changes to github contact my email reddit or whatever I Say I want to be part of this. I want to add design to this My design in the beginning was some say crap. It was functional. It worked. It was dark The current theme burns your eyes when you look at it, but okay So it was important for me to get the function running and then to talk to the designers so after the first Release which had covered all the basic functionality I got involved with some designers who are already lined up and said And said okay, let's do something to the together in order for such a team to work. I Said later on I've got a An introduction to the team. It's around the world from Australia to Argentina Sorry You need a common language which in our case is English You need a common and clear vision everyone has to be on the same page, especially since you are Around the globe with different time zones. You need to be stepping in the same direction All of you at the same time Clear communication structures. How do we communicate? How do we get a message across? What is important for us? clear responsibilities if You're all in the room then it can be chaos and at the end of the day it will be fine If you're not in a room It will be chaos. So You won't get anything done. I think So it's pretty clear Who does what what the responsible for it's okay if the responsibilities are not Perfectly defined, but it should also be clear that they're not perfectly defined So who does the help file as well? Whoever wants to do help files because no one wants to do help files for example Coding style and approach to coding is is important for me as a coder. I had some People talking about coding in there and it Some of them just did not fit to my way of reading code Maybe my read way of reading and writing code is crap, but it's my way and it just needs to fit So I found luckily a guy who's exactly in my in my direction. I look at that this code and said, okay This is this is this is good Also, of course, you need a task management, especially again if you're a diverse team We use a Kanban system. I've got a couple of screenshots later how we use that then there's the Fight the war between designers and developers. I want the stuff to work. They want it to look good so And it's difficult to make it look good so what we've Come to an understanding which was from the beginning is that the form follows the function we wanted to work and It should look sexy in doing that. So that was our approach we had a couple of designs and Basically just mock-ups of how the things should look I implemented it the way that I interpreted it they were Mostly different from what the mock-ups were But it was the idea of what it should look like and that's what it looks like and that were that's what it does So it's important to see what matters what matters for the whole team What is important for this project and what is what is not so important? And again, let the deadline dictate the scope. We've got the deadline in one week There's no point in putting one month of work into it. It's okay. We'll do this now and we can put the rest on the backlog and Things disappear from the backlog Mysteriously because it turns out that we're not important in the first place Not everything disappears and then there's the support issue I've made a screenshot of a thing I got a couple of days ago. I Wanted to use hello. I wanted to use your wallet to storm on my moneroy So I did I can no longer access my wallet or see the balance What am I supposed to do? What am I supposed to do? So of course you need to deal with with these kind of support the things as well in a normal cordial manner Please give me more information what what is it you want to be trying to do and that kind of stuff This should not be ignored. Of course I can tell this person. Well, don't use the wallet But it's not the idea of of the of the community Okay, what tools do we use I have to use this tools We have some collaboration tools We use the tiger which is provided by the Monero project There we do Kanban tasks which we shuffle around the team the tiger we use for For the project is a public tiger so anyone can actually see what's on our backlog What are we working on what's done? What is ready to be tested and? We use matter most it's a sort of like slack or IRC or some communication thing which we use a lot Only only text and only typing But of course posting screenshots and videos so if I like change something I like keep posting videos What does it look like now and they're like this is too small. This is too big It's not round it's that kind of stuff so it's pretty good and you get immediate feedback Cold repository our code is also on github and for the design we We use a website code in vision where you could do mock-ups of of some of Apps I've got a screenshot soon. This is what the tiger looks like if I press this button Okay basically you have tasks Which short with a short description of what the task is For example the second one up there is a dark theme so you don't get blind every time you use the app The second column is ready in progress ready for test and done and when you Move the status you just move the card across You can also like ask questions and answers and basically everyone knows what what's going on The next slide is how we Design design the screens. This is a screen of what? The XMR to your integration looks like or would have looked like if I had implemented it that way It's pretty great because you see what colors are used You can measure you see the measurements of the screens so you can try to approximate that Approximate that when you're implementing What we did from the very beginning from day one. We had a we had a sure fix Every Monday The whole team except Australian because he's asleep We we meet for one two or three hours sometimes in the in the matter most and talk about what have we done How far are we? What do we continue doing? What we talk about the screenshots about the layout about We draw funny pictures and have fun generally and Talk about what is the social distance between people in Argentina in comparison to Sweden? So all kinds of fun stuff Sometimes we prepare an agenda if we have a lot a lot of points that we want to cover and this always takes place also if someone's not there and This is very important. I think because it just keeps the project running It was it all he's not here or have no topics then it just slows down and then you can you can forget it I think a lot of throwing ideas at the wall. That's how the team works. This is how I work That's why I said we fit pretty well together. You just throw things out and people tell you to shut up or oh, this is great Let's try it try it that way Keyboard I said we only type we don't have any video stuff Yet, I don't know if we need it and a lot of screenshots Painting on screenshots this envision actually allows you to paint In the web interface and the other people That are also watching this see these changes, so it's a very very interactive Hmm Okay, the wallet Notice the fantastic Guy with the Monero jacket there. He's called gunter He's going to from Argentina. It's not me. Someone asked me today. Is it you? No, it's not me. I just wear him Okay technical challenges for the actual well wallet Setting up an environment. I said that's Sort of difficult it's easy when you know how so I've documented exactly what you have to do Luckily my heart is crashed completely everything was lost so I had to do everything from the beginning So I documented that I've missed of course a couple of steps in the first round So now if you go to the github repository, you can do it yourself and it will probably not work for you Compile the Monero code for Android this had already been done Thank You Hick and A lot of a lot some compiling Warnings which you have to check are they applicable? Is this something important or is it just well? Noise and some errors there were as well to do with With the Android Development kit that I was using and the prerequisites of course a lot of projects have a lot of Dependencies and prerequisites you need to get those compiled on the Android as well the biggest problem here was the open SSL Which most people try to copy it from the phone and use the Google Libraries the Google source code for that that did not work at all for me I compiled it completely from from source code. It turned out to be a matter of two hours and It's it's fine The biggest problem and the biggest technological challenge was to Android your program in Java as a language and The Monero code the Monero core is a C C++ DLL and you need to connect those two and that Does a lot of threading as well So you need to use threading in both directions and to get that working without having memory leaks is a is a bit of a challenge so That challenge has been solved. We haven't had a memory problem in At least six months So I managed to get get that running and of course All the Android concepts I had written an app for Android maybe ten years ago where there was everything was different So I was learning everything completely completely new about services permissions Threadings are threading which is only available available since Android 5 So that's why the lowest Android support is Android 5 The API which keeps changing between Android versions and between Monero versions to like deal with that you compile it again like nothing works and The emulator is quite cumbersome So I gave up using that quite soon and debug everything on the device But only have one device with Android 7 so from time to time I need to start it up Wait for half an hour for it to do something And As I said dealing with new versions of Monero core, there's a testnet mainnet We had a couple of discussions today about that that this needs to Change if you want to have more stuff integrated to Monero Because right now the testnet is actually the development Version really the cutting-edge version and there's nothing you can test The current production version with so you actually have to spend real Monero to like try stuff out And we don't have that Some security aspects which keep coming up in in different reddit threads and on Github as well Where to store store the wallet files in Android? There's a sort of sandbox environment for every app Which is internal storage if you will and there's the external storage where every other app has access So if you store the wallet files on the external storage Every other app has access and people say ooh Every other app app has access to my wallet files Yes, they do they all every other app you have on your PC also has access to your wallet files. So There's that if you store it on the internal storage No other app has access to this internal storage so you cannot back up your wallet files for example Plus I'm sure this can be hacked and good hackers will get into your internal storage And you think that you're safe, especially if your phone is rooted. So It depends what you want to do. We decided to go for the external storage location With well with the side effects that other apps have access to your wallet files like in other operating systems Basically, I think the problem is that people are lazy to enter good passwords, you know on an Android device If you have a good password, it doesn't matter where your wallet is stored The other thing is I want to delete wallet files. Yes, I understand that there's no deleting of wallet files as such there Because I cannot guarantee that if I erase something from a SD card someone can't take the SD card and do undelete Secure deleting is a is a science of its own So we can't tell you okay, I've deleted your wallet and be you're sure you're safe You are not safe. So we don't even try to do that if you want to Do that you need to find an app which deletes everything on the On the on the device Okay Password entry. There's always how to enter the passwords Do you want to have an increased interval always if you type a wrong password? I think we'll be going in that direction Is there a kill switch is there a password which deletes all your wallets again, we get into the delete problems because when the TSA agents take off your phone and you type in the wrong password They will take your SD card out and they will recover your your wallet. So it does it doesn't really matter That's the destroying of the wallets, of course Then there's the fingerprint fingerprint is on the next slide. We want to use fingerprints as passwords We've also decided not to do that because No one can accept Guantanamo can get a password out of you and a fingerprint anyone with a knife has no problems in Dealing with this problem So We are leaving it at a password. Just pick a good password and you will have no problems. I think Then there's the idea of proof of writing down Where we Need to force people to write down them them on exceed the way that is or should be Done for all wallets. Keep your seed. Keep your password. Keep your keep your private key safe in multiple locations and And We the hardware wallets do that. They actually make you repeat The mnemonic seed after they have dictated it to you to make sure that they that you actually have this We might do something like this. I don't know we've prevented screenshots To prevent other apps just from screenshotting. Whatever you're doing on your phone I understand the most banking apps if not all banking apps apps also do this for the same reasons So we decided to do this as well It's a bit of a bummer for support because I can't tell people will send me a screenshot of what doesn't work So maybe we need to reevaluate this this decision Some people are saying oh, but you're using the exchange exchange rate from Kraken and That doesn't work well with Tor and we want something else Yes Maybe we want to talk about this Also, of course as soon as you call up an exchange rate from somewhere They know that you're doing something and they know where you're doing it from So maybe if you're paranoid don't exchange rate like this and that you are Tor integration I've never tried it actually. I understand that it works in with Tor and VPN mode So I don't think we'll be doing anything in that direction apart from that Monero is doing its own Covery which is a secure Secure Transport layer anyway the team look to people Bit of a social slide I've spoken about most of this already no one is paid everyone's doing it for fun. Everyone's doing it for free out of conviction Because we all believe Monero is a is a is a good thing for our society There's no obligation to deliver. So it's a it's a completely different Way to work when You expect people in all the team to deliver, but they don't have to so you you really have to fit together with with the way you work with them In both directions, of course There are no customers again because there's no money flow their consumers And the consumers are not used to being treated like not customers Yeah, so this is also a social aspect. It's all based on respect and the Monero community is is really great I was told to point to the Monero cat down here. Very important With this movement. Okay Monero cat got it close-knit community and You get support you can talk about things. It's very it's very amicable our team If it comes up Six people So it started out with me then we got the rara who does the website. He's reworked the get Monero website now as well I think Bouts are who does the user interface? Andre is also user interface and he did the cool gunter guys Key Jeff everyone needs a kangaroo fighter in Australia. So we have one And we have this second developed by in Germany as I said spread around the world So we have a bit of a time zone problem. So that's an advantage of matter most when we discuss When the left side of the of the slide discusses things the right side can read it then later and comment on it in in block a Short introduction maybe of everyone Me I've been Doing everything from embedded systems to you name it The second point is more important a crypto annoyance to all my acquaintances colleagues Family and everyone else. I keep bugging about it. I can't stop talking about anything else. I don't do anything else either and Yeah developing making music and Well reading code We decided this is the most funny funny picture in the whole presentation. So this is the Swedish designer who's well, there's all the designing of course and At night he does Munero and other stuff what is he right? He says I he puts on his suit and designs stuff for Munero He exactly in the beginning. He said I have maybe one or two hours per week to To spend on this project and then it turns out. I think he spends more like 10 15 hours So it's it's quite a lot of of work also during the week Okay Yeah, why Munero? I also asked everyone like why why are we doing this and basically it's all the same reason that It's political and social developments that that we want to support with this project Fernandez Cordon Andres Fernandez Cordon. I think as I said it right now A long time you see it an illustrator and filmmaker He has a co-founder creator the creative director at Sloop, which is a Creative animation studio. He does all our cool cool stuff with well this kind of thing and He's also crypto annoyance with acquaintances and loves railways and time travel movies and hard cheese and wine the Why is he still why is he still with us because we immediately made him feel part of the team and It's just such a great great team to work to work with I Think his other statements here. I think lack of privacy leads to coercion a dream I dream of a world where incentives are so Well implemented. There's no need for filings. Of course. This is utopia, but this is where we want to go and Monero is a step in this in this direction. So that's why we're there key Jeff who's also does not only a kangaroo fighter, but Also user user interface and help files He's still studying and he's helping us Well get our English straight because he's the only native speaker He was I think one of the first people who contacted me to fix my English and Yeah, and then we have a real Android developer a professional Android developer to help us Especially also with testing so we have a bit of some testing framework in there by far not enough. It's just one drop of on a huge fireplace But we're we're starting there. Yeah And yeah, Monero needs a good Android wallet Okay, that's the team just a short timeline Of our newest feature maybe to understand the way that we we work we had the I Looked up these dates. It's pretty fast. So 6th of November We had our first contact to the XMRTO guys. It's okay. Well, do we want to do this? How do we want to do this? Then talk to this with my team on the 9th of November. We said, okay, we'll do this in order to do this though We had to restructure the whole sending workflow in order to convert We had one screen where you could send Monero and We needed a couple of things in order to send Monero because in between sending Monero and receiving Bitcoin we needed to Access an online service the XMRTO in order to get exchange rates and create orders and query orders and stuff like that So you see from 9th of November to 15th of December is a long time. It's a month but in between that we restructured the send workflow and That was one update to the app. So we had took two weeks or maybe three weeks. I don't know now and And We had already set a date we wanted to present this at the Monero meet-up in Vienna on the 15th of December So after two weeks, we made one version with a new send flow see if it works. It's pretty fantastic And then two weeks later we got this thing actually working and we showed it to the guys at the Monero meet-up with the XMRTO integration and now a couple of days ago We redid the the user interface so it now looks really fantastic and Since well since 24th Since Christmas we have it in the public beta so everyone anyone can register and Do stuff I Think that's it and the the logo is just really cool Okay, this is the Mortal Kombat Gunther So and this is the will code for XMR Gunther Yes, you had a question But there's the microphone. I think it's coming to you Okay, a little applause to Demi, please It has become a tradition that I first asked three questions to Demi And you just recap all the amazing input that you got and then the QA is later But let me be first. Is that okay? So this was about the Android app and You have two UX developers UX UI and you have two real developers Yes Okay, is that enough developers or is that enough UXS? Well, I think the mix is is pretty good I'm the main one doing the Developing the second guy is helping me when when I when I need help or when he has ideas and The two Interface designers are are I think they're enough otherwise will be more of a more of a mess but I have no experience so maybe I Don't think I don't it's not more is not always better I thought it was very interesting to to see how a a project really works and a free floss project From people around the world. Thank you for showing the tools, but how high is the test coverage? The test coverage I have no idea So who's doing QA or so? No one is doing QA as an as an official as an official task we're all testing it, but It's not the real testing It's more trying things out and the second developer I'm hoping that we can actually get instrumentation tests and actually have a number for for code coverage Yeah, so that's one of the next steps in in actually having a QA which is real QA and not trying stuff out yeah Last question in the hot seat. I forgot Where will I find you when I remember the question? I'm back there with the Munero guys Okay, then you're lucky. Thank you I will now go down to the stage with my microphone and you come with your questions You can also enter the stage, but be aware you will then be On screen and then maybe some time tie someday in the internet But I thought some I saw some questions just just come here and join me and ask me your questions now Is that a question? Hello Thanks for the talk very inspiring. I was wondering if you know about the fdroid Android app store and whether your plans to publish your app on fdroid Yes, that's a good question. It's a question which comes up a lot Understand also why? I There are no plans as such I Tried to Do it But I gave up after a couple of hours when I could not get the fdroid stuff running on my system and Decided that functionality is more important than getting it on there That was a couple of months ago. The functionality is is pretty far and yes We want to get it on fdroid and yes, we're looking for someone who actually Can do stuff on fdroid and understands how to have to how to make the stuff work We may be able to do it here one idea was to actually do it here the Monero assembly to get people working and At least getting it to compile with that in the fdroid ecosystem so yes a Plan is something with a date. So no, we don't have a plan, but we really want to do it, right? another question I Have two questions Why do you think has the official team not released any? official Android wallet yet and the second question is Do your plan to support any real light wallet? protocol like the open open Monero back end which is Supporting real light wallets instead of remote Using remote nodes The first one it would be speculation. I have no idea. I have no contact to them I know I have read probably less than you have read about why they're not getting further. I don't know The second question integration to or talking to a light wallet the protocol is completely different the functionality is completely different So no, we want to be a real standard own Client where your keys are on your phone. You have wallet files, which you can exchange with your PC So the the wallet files you create on your PC or Mac or whatever you have Linux you can actually copy them to your Android phone and they will work there Just like they did on your PC and that's where we want to stay. So it's a standalone thing. Yes You need a remote node. Yes, the remote nodes are very flaky. They don't Well, mostly don't work a lot But a lot of the time they do and We need I think a solution to this problem is to have better instructions on how actually to run your own node because it's very simple when you know what to type It's it's it's so simple, but I had a stupid conversation with on Reddit no on IRC that there's no Instructions how to run your node. So they sent me 20 links But you have to combine these 20 links in a week To get the one command you need to run. So maybe we can make that easier Hmm. I have one question. I have a big problem with the iOS X wallet Wallet they are charging a fee on top of the monero fee. So I want to ask you if you can swear to us that this That your problem with your project will never be start any type of monetizing That's a trick question. Never say never I Don't want to answer that. No, I've never had the idea to do that. The idea is it will be free forever But this might change in the future. I have absolutely no idea because oh, yeah, I Yeah There's no there's no idea to actually monetize on this now Okay. Thank you very much. Demi. No some tough questions to answer Remember to Mike third question. What do you know about the the actual one Gerald users? How many We have what I do with it. We I Don't have direct contact with the monorail users We have feedback with emails on on forums on reddit We try to solve all problems which are mostly related to nodes. So I understand that this thing we have offer that we have about 12 I think alpha testers We have about five or six hundred beta testers and the app is installed on about 5,500 devices active devices. So that's quite something and Since we don't get a lot of feedback usually feedback is more negative I think it's it's it's running well and the feedback we do get is it's positive. So I'm happy for that. Yeah Okay, Demi. Thank you very much. Thank you for your attention. I will also like to thank the The amazing people of my team in the in the back making all this possible So when you're up here on stage and you you're put in the hot seat Demi is the fourth person who survived it. You may like me You may not like me But my team is more than happy to take your presentation and then you can stand here just like Demi and all the other great people Show your project show your love and have a great time on the Congress. This stage is for us It's for for all of us on the Congress. So please send me or my my team or the team basically Your papers. I'm looking forward to it