Dependency Injection is good. Yeah, we all know it. And yes, we were using it for a while. But were we using it correctly? Was it easy? Uhm. It depends. But one thing is sure: now it’s better. Just to make it clear: it’s not a Dagger tutorial. If you are not familiar with it, I recommend for you to read a bit, as it’s great and you definitely should learn Dagger and start using it in your projects. Okay. So what’s the deal with this all-new Dagger? Well… it came with Android support. As you know, Dagger is Java library, not the Android one. So all the stuff we were doing with Dagger was pure Java Dependency Injection. But was it wrong? Why it is a problem? It’s simple — many of Android framework classes are instantiated by Android itself so we had to perform injection inside of lifecycle methods. By that, we were copy-pasting pretty long builders into our onCreate() methods. I guess you know that: ((MyApplication) getApplication()) .getAppComponent() .build() .inject(this); Pretty scary, right? It’s really not how dependency injection should look like. It obviously breaks one of the most important rules of it: “A class shouldn’t know anything about […]
“I believe in intuition and inspiration. Imagination is more important than knowledge. For knowledge is limited, whereas imagination embraces the entire world, stimulating progress, giving birth to evolution. It is, strictly speaking, a real factor in scientific research.” Albert Einstein We will try to show you why the above is so true. No matter how much this quote is being overused throughout the Internet, we have put it here on purpose and consciously, taking full responsibility of what reaction it may provoke. Last week we have launched a new section on our website (it’s available here: http://bit.ly/2tLosfi ) The recent multiple success of Anima project inspired us to do a little research amongst BitCrafters. What we found, we think is worth mentioning. In fact, this is something that we can honestly, proudly and without any restrains brag about. BitCrafters individually and thanks to teamwork have gathered, in total, 13 awards up to date! We have won four times in national and international competitions. We were twice second. Once third. We have been three times in the finals. Received two recognition letters. And one seal of excellence certificate. We took part in local, national and international events. The contests were organized by big […]
It was with great pleasure that BitCraft received an award for Innovation. In our short history it is already the second time we have been noticed for our work. On 22nd of May during the 10th annual gala of „Innowacje 2016” held by Kurier Poranny and NOT we have been awarded in the category of „digital solutions”. It is the first time that we have participated in this ranking and as it seems the first time’s a charm. The award has been given in multiple categories, in „digital solutions” our internal projects such as Auto On-Boarder, Project Starter and Conference Booking System proved to outclass the competition. Internal projects have their own quality to it, that special feeling. Ideas for those products came from within, from our own team. The execution, the concept, the architecture and of course the overall success is all because of team effort. We hereby say a big „thank you” to all who contributed. We had the pleasure to stand beside such great companies, with long business history as AC S.A., ZETO, Promotech or TenderHut. Congratulations to all! Additional info: Auto On-Boarder Application which renders manual on-boarding processes obsolete. It is an automatic system which with one click […]
Our co-workers are not only excellent programmers, but they are innovative and enterprising as well! The fact that their project of smart notificator has qualified to TOP 5 in Microsoft Imagine Cup Innovation Idea which is the greatest example of their excellence. Congratulations to Michał Jaszczuk, Mateusz Markiewicz and Mateusz Bajko. They still have a long way to go, so we highly encourage everyone to support them and keep track of their road to the real market! More info about the project may be found on Facebook or the website: www.facebook.com/AnimaBesos www.youranima.eu So how does Anima work? 1. PUT ANIMA IN YOUR HOME. You can choose any place, where you would like to be notified. For example put it close to your front door and get notifications when you come or leave the house. 2. INSTALL APP IN YOUR MOBILE PHONE. Now you can leave a message or add new device to your account. You can share device with your family, friends or roommates. 3. ADD DEVICE. Scan QR code or add manually any devices you want. 4. LEAVE MESSAGE. Leave message using your mobile app. Just choose device and recipients – it’s that simple!. They will be notified not now […]
Everyone knows, how uncomfortable some solutions are in Android. One of the most unexpected and most weird of them is the Keyboard API. Even so simple thing, as hiding keyboard programmatically is little problematic. It’s really clumsy, pretty long and not programmer friendly. We need to know the context of our application and pass current focus of a view as a parameter of a function. And it’s just a basic thing to do with keyboard. Imagine situation where you would need to add some complex functionality to that – it could be painful. One of a really nice features (from UX point of view) is possibility to hide the keyboard when user taps anywhere outside it. Google often uses this kind of feature in their own apps. It is really nice to have that option, so I decided to implement this functionality into one of my apps. Solution of this problem is not so obvious. After reaching my goal, I release it as an open source library. You can find it here: Keyboard Dismisser But if you want to implement it on your own, or you are just curious how to make it work, keep reading. I will try to […]
Our small contribution to the Python community in Bialystok. This powerful and fast language gathers more and more followers around the globe, Bialystok is no exception. Each month Python fanatics meet during “Pystok” nights and indulge in the vast world of software engineering. Last meeting was special, it was a sort of a round celebration – 12th meeting. Bitcraft was one of the most active participants and supporters during that night. Our Code Sheriff straight from Tunisia – Mehdi ben Jaafar gave an outstanding lecture about Celery* Framework, which allows execution of asynchronous tasks in Python. You can have a peek at the presentation materials here: One of our case studies required his expertise in this subject in terms of configuration as well as implementation. We figured that this was important enough to share amongst other local Python enthusiast. We can promise you that this wasn’t our last appearance on Pystok. *Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.