98 lines
6.3 KiB
Markdown
98 lines
6.3 KiB
Markdown
# Private projects
|
|
<chapter title="Sample Android Application">
|
|
<primary-label ref="wip" />
|
|
<tldr>
|
|
<p>Gitea repo: <a href="https://gitea.adriankuta.dev/RediOne1/Android-Sample">Android Sample</a></p>
|
|
<p>Source code: <resource src="Android-Sample-main.zip"/></p>
|
|
</tldr>
|
|
</chapter>
|
|
|
|
If you are interested in the style in which I create applications, both in terms of architecture and code cleanliness, I
|
|
invite you to check out my sample Android application. This application showcases the use of modern technologies and
|
|
design patterns, such as Jetpack Compose, multi-module architecture, and the MVVM pattern. I also apply best programming
|
|
practices, including SOLID principles, DRY, and many others.
|
|
|
|
The source code of the application is available for download here <resource src="Android-Sample-main.zip"/> or can be
|
|
found in my private repository [Android Sample](https://gitea.adriankuta.dev/RediOne1/Android-Sample) . This allows
|
|
you to directly see my approach to programming and view code examples that illustrate best practices in developing
|
|
modern mobile applications.
|
|
|
|
If you have any questions or need more information, do not hesitate to contact me. I am happy to share my knowledge and
|
|
experience to assist you in your projects.
|
|
|
|
## AI - Artificial Intelligence
|
|
|
|
In the context of AI, I have not managed to complete a complete project so far. I am currently in an intense learning
|
|
phase, and my private initiatives are more like experimental research facilities. However, I have found that the best
|
|
way to learn new technologies is to set yourself a specific goal. Therefore, I took up the challenge of creating my own
|
|
AI model, focusing on training convolutional neural networks (CNN) for photo classification based on person recognition.
|
|
I believe that a single AI model may not be sufficient, so at the face detection stage I use the opencv library and the
|
|
haar cascade mechanism. Later, I plan to use tensorflow and keras to train the CNN more thoroughly.
|
|
|
|
In terms of user interface, I am also exploring Compose Multiplatform, a modern tool that allows you to create UI that
|
|
works on multiple platforms, which is part of my process of learning interface design.
|
|
|
|
## Android & Kotlin multiplatform libraries in Maven Repo.
|
|
|
|
As part of learning how to create my own libraries and tools for developers, I developed a few small libraries that I
|
|
made available in Maven, a repository popular among programmers. Obviously, these libraries won't change the world, but
|
|
their main goal was to expand my knowledge about the possibilities of creating open-source tools that support the
|
|
programming process.
|
|
|
|
### Unbound Drag & Drop
|
|
|
|
[Unbound Drag & Drop](https://github.com/AdrianKuta/Unbound-Drag-Drop)
|
|
|
|
[](https://central.sonatype.com/artifact/dev.adriankuta/unbound-drag-drop)
|
|
[](https://github.com/AdrianKuta/Unbound-Drag-Drop/blob/master/LICENSE)
|
|
|
|
[Unbound Drag & Drop.webm](https://github.com/AdrianKuta/Unbound-Drag-Drop/assets/46381935/73cc7ac8-aaf0-4dd7-b506-0745b1122222)
|
|
|
|
Unbound Drag & Drop is a versatile and user-friendly feature designed to enhance your Android
|
|
applications by enabling drag and drop functionality across multiple RecyclerViews. Unlike the
|
|
default behavior, which restricts drag and drop actions within a single RecyclerView, Unbound Drag &
|
|
Drop allows users to seamlessly move items between different RecyclerViews, providing a more
|
|
flexible and intuitive user experience.
|
|
|
|
#### Features
|
|
|
|
- **Multi-RecyclerView Drag and Drop**: Easily drag and drop items between multiple RecyclerViews.
|
|
- **Customizable and Extensible**: Adapt the feature to fit your specific needs with customizable
|
|
options and extensible components.
|
|
- **Smooth and Intuitive User Experience**: Enhance the interactivity of your app with a
|
|
user-friendly drag and drop interface.
|
|
- **Easy Integration**: Quickly integrate Unbound Drag & Drop into your existing Android projects
|
|
with minimal setup.
|
|
|
|
### Multilevel Expandable RecyclerView
|
|
|
|
[](https://mvnrepository.com/artifact/com.github.adriankuta/expandable-recyclerView)
|
|
[](https://github.com/AdrianKuta/Expandable-RecyclerView/blob/master/LICENSE)
|
|
[](https://github.com/AdrianKuta/Expandable-RecyclerView/actions/workflows/publish.yml)
|
|
|
|
With this adapter you can add expand feature to regular RecyclerView.
|
|
|
|
All objects are store in [Tree (Data structure)](https://github.com/AdrianKuta/Tree-Data-Structure), so adapter can
|
|
create multilevel expandable groups.
|
|
|
|
Under the hood, the tree is flattened to simple list, so from RecyclerView's point of view it can operate as usual.
|
|
|
|
 {width="400"}
|
|
|
|
## NAS Server
|
|
|
|
Having my own NAS server is not just a hobby, but an opportunity to delve into the fascinating world of technology. In
|
|
my spare moments, I dedicate time to exploring its capabilities, which translates into countless hours of fun and
|
|
learning. My journey with the NAS started quite innocently but quickly evolved into something much bigger. Currently, my
|
|
server acts as a hosting platform, running several websites, including the one you are reading this post on.
|
|
|
|
I also use it as a testing environment, invaluable while learning React or Nest for the backend. What once seemed like a
|
|
mere hobby has now allowed me to gain extensive knowledge in managing multiple Docker containers, facilitating their
|
|
communication, and creating my solutions. This process also made me realize how crucial it is to ensure network
|
|
security - both private and public.
|
|
|
|
Over time, my interest in network security has grown to proportions that sometimes seem excessive to me. The network
|
|
architecture in my home, with routers, switches, and VPNs, could be compared to the network infrastructure of some
|
|
companies I've had the chance to work for. I sometimes laugh that my home network is more complex than some professional
|
|
installations. However, this reflects the depth of my engagement in a hobby that has become a true passion and a source
|
|
of valuable skills. |