Starting a Feedbacker project in Android Studio

Starting a new project in Android Studio is a very simple task if we have an idea of course what we want to do. In this post, I will show step by step how to create a simple project using blank activity with fragment.

First, we should run AndroidStudio and then select from the main window: Start a new Android Studio project. After that, we will see a: Configure your new project window:

1

This window allows naming your project, select location of workspace and also set your company domain, for me company domain is: andrzejdubaj.com.

Next screen allows selecting form factors on which app will be running.

2

I select: Phone and Tablets, also: Minimum SDK – API 21: Android 5.0(Lollipop). Why has Android 5.0 Lollipop ? Because I have a smartphone on which I can test my app – physical device, not an emulator and second: I want to build from source Android 5.0 and run in on raspberry pi 2 or 3 version. We will see in the future.

7

On: Add an activity to Mobile allows selecting one from several activities with automatically add necessary file to project, for example, *.xml files. I select a blank activity. If I decided to create some localization app I will choose google maps application.

3

Next step takes us to: Customize the Activity. Way, I choose fragments ? Because fragments allow building an application with behaves somewhat like a nested activity that can define its own layout and manage its own lifecycle. You can read more here.

4
 After pressing on: Finish button we will get build the layout of an application. Basic project structure with catalogs and base classes.
6
 
On this point,  we can start developing the application. Writing code and add necessary files.

Most useful Raspberry Pi shell commands

Raspberry pi offers to install many Linux distributions. On Linux you can use commands to save your time and become more powerful in you work environment. Below I put some useful command:

  • apt-get update: update raspberry pi system version
  • apt-get upgrade: upgrade all packages installed on raspberry pi
  • clear: clear all logs in console
  • startx: command allows to start graphics user interface
  • reboot: allows to reboot system immediately
  • shutdown -h now: shutdown immediately
  • power off: allows to shutdown machine
  • data: prints current data
  • shutdown -h 03:33 : shutdown at 3:33
  • apt-get install nano: install nano editor – nano online documentation

Network commands:

  • ifconfig: allows you to check: IP address, wireless connection
  • iwconfig:
  • nmap: software that allows to scan:
    • network and list connected devices
    • port number
    • protocol
    • state: open or closed operating system
    • MAC address
  • ping: allows to send ICMP echo request packet to network host
  • wget: allows to download file from Web and saves to current directory

System information commands:

  • df: displays statistics about the amount of the free space on the specified filesystem
  • free: display how much free memory is available
  • hostname: display name of the current host

Search commands:

  • grep: allows to search inside files certain search patterns. Support regular expressions which allows special letter combinations to be included in the search
  • awk: programming language useful for search and manipulating text files
  • find:  allows to search a directory and subdirectory for file matching certain patterns
  • whereis: allows for location or a command
  • history: allows to display list of commands typed in console

Feedbacker – mini greenhouse

A few days ago I order mini greenhouse online shop. During my participation in #dajsiępoznać competition on which I wrote here. Finally my order came:

1 2

3 4

With the submission of its entire greenhouse I have no major problems. One thing that surprised me is that the included missing screws on greenhouse walled. When purchased whole, I thought that I would receive a complete set. One screw or two should solve the problem.
The second issue appeared when I complete whole greenhouse. Box is not tight, which will affect the measurement:

  • temperatures
  • humidity
  • pressure
  • air gas concentration

The greenhouse is not large dimensions. It is quite small, and its dimensions are:

  • width: 45 cm
  • depth: 22 cm
  • height: 35 cm

Despite a few flaws, it is suitable for prototype on which you can experiment.

Raspberry Pi Models

It’s time to look for some Raspberry Pi. There are several versions of which I will try to compile and compare. Personally, I’m in possession of versions 1 and 2. On third version I will have to wait a bit. With the first two versions of Raspberry Pi I already have some experience. Starting from building test environment, which by the way was fatal to the first version, and my patience, robot arm, environment to automate building small application builds, small radio, neighborhood monitoring system and ending with the media server. But about this, I’ll write another time.

So let’s start from the beginning. Below I put table with compilation technical specifications various versions of raspberries:

Model Raspberry Pi 3 model B Raspberry Pi 2 model B Raspberry Pi 1 model B
Release 3 – 2016 2 – 2015 2 – 2012
Procesor chipset Broadcom BCM2837 64-bit Broadcom BCM2836 32-bit Broadcom BCM2835 32-bit
Operating system Linux, RISC OS, FreeBSD, NetBSD, Plan 9, Inferno, AROS, Windows 10 loT Linux, RISC OS, FreeBSD, NetBSD, Plan 9, Inferno, AROS, Windows 10 loT Linux, RISC OS, FreeBSD, NetBSD, Plan 9, Inferno, AROS
Timing 1,2 GHz 900 MHz 700 MHz
Architecture ARMv8-A ARMv7-A ARMv11-A
RAM Memory 1 GB DDR @ 400 MHz 1 GB DDR @ 400 MHz 512 DDR @ 400 MHz
GPO JACK 40-pin (2×20 pin)
raster 2,54 mm
40-pin (2×20 pin)
raster 2,54 mm/td>
40-pin (2×20 pin)
raster 2,54 mm
Power supply 5,1 V / 2,5 A microUSB 5,0 V / 1,8 A microUSB 5,0 V / 2,0 A microUSB
Board dimensions 85 x 56 x 17 mm 85 x 56 x 17 mm 85 x 56 x 17 mm
USB Inteface: 4x USB 2.0 4x USB 2.0 2x USB 2.0
Network Interface: Ethernet 10/100 Mbps Ethernet 10/100 Mbps Ethernet 10/100 Mbps
WiFI 802.11 b/g/n 150 Mbps none none
Bluetooth Low Energy, BLE 4.1 none none
Camera CSI port CSI port CSI port
Touch screen DSI port DSI port DSI port
Video HDMI HD 1080px / 30 fps/td> HDMI HD 1080px / 30 fps HDMI HD 1080px / 30 fps
Communication UART, SPI, I2C, GPIO UART, SPI, I2C, GPIO UART, SPI, I2C, GPIO

Raspberry pi 1

 998-11 998-14

Raspberry pi 2

2358-01 2358-03

Raspberry pi 3

3055-06 3055-08

To be able to take full advantage of the Raspberry Pi acquire a suitable equipment:

  • Charger 1 A
  • HDMI cable
  • memory card, at least 4 GB
  • keyboard, mouse
  • display
  • prototype board

Raspberry Pi philosophy is very simple. A small board which became the foundation of education at low cost, as well as the driving force behind many projects, both amateur and professional. With each new release of Raspberry Pi, it is becoming more efficient and faster. Definitely I will use Raspberry pi in my next project, but I will  write about it soon.


Reference:

Feedbacker – list of learning resources for app development, IoT, testing …

I always have a feeling to put down my own list of learning resources for development/ IoT / testing. It not easy 😉 But for now I publish first version of list and I will expanded this list as more interesting materials.

ALC:

Android:

TDD / Unit Testing :

Development resources:

Development Tools:

Testing Tools:

Performance:

Security:

Internet Of Things:

Recommended talks:

aapt on OS X

During launching my tests written in JUnit I notice problem with performing one of them. I received:

java.io.IOException: Cannot run program "aapt": error=20, Not a directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

In Stack Overflow I found a lot of solutions but non of them didn’t solve my problem. There’s a bug in IntelliJ IDE that points to platform-tools for executable that are in build-tools. I found my own solutions of this problem:

ln -s 23.0.2 build-tools/current
ln -s ../build-tools/current/aapt platform-tools/aapt
ln -s ../build-tools/current/lib platform-tools/lib

This solution works for me. Similar problem appears in Windows and Linux.

Pet project for: “Daj się poznać” second edition.

Potted Plant-50During a past few days I wondered over my pet project to: Daj się poznać competition. It was a very hard period of time because of number ideas coming into my mind. Some might ask why it was so hard    with choose appropriate idea. The answer is simple, everything is connected with time I have and I can devote to self-development.

I figured that I create simple applications on android that allows user to control device in the form of a small greenhouse for plants. Getting data from the box of the container itself. Irrigation control and opening the upper flaps. This small greenhouse is available in many shops networks for allotment, only part with glass and frames. I can easily buy online. If I can’t buy one,  which is highly unlikely, especially since it is getting closer to spring, it will build one myself. Definitely it will require few modifications, but this is to be done.

List of things to do:

  • rework / construction of mini greenhouses
  • adding sensors with microcontroller
  • design of irrigation systems
  • write applications for android
  • writing service for monitoring data online
  • invent an elegant solution to the communication of a whole greenhouse
  • write code which works
  • perform tests
  • a little penetration testing and evil hacks – this can be fun 🙂

For sure the first part will not be made quickly, because of a several issues about whom I will try to write later, more technically.

Idea for this project it’s really related t IoT – Internet of things. I will use agile methodology to describe all steps, or steps that will appear during develop my idea project.

Link to my project on GitHub.

What I would like to achieve ? – And this is very good question 😉 First of all I want to learn new technology:

  • android
  • WebServices
  • IoT
  • communication protocol
  • test frameworks that allows to perform automation in IoT field
  • some basic stuff about security – it’s more then fun
  • do something useful

Secondly:

  • document my progress
  • use git
  • have more fun