Wat is de beste taal om te schrijven voor Android. Een Android-applicatie schrijven met Android Studio

Gegroet, beste fans van het Android-besturingssysteem. In het artikel van vandaag zal ik proberen een zeer interessant onderwerp zo volledig mogelijk te behandelen: een selectie van tools voor het maken van je eigen applicatie (online) voor gadgets gebaseerd op het populaire Android-besturingssysteem.

Met de ontwikkeling van mobiele technologieën ontwikkelt zich ook de markt voor mobiele applicaties, inclusief de markt voor mobiele applicaties voor het Android OS. Als voorheen alleen een gevorderde programmeur met een dikke bril en die vijf jaar universitaire studie had afgerond een aanvraag kon indienen, is deze mogelijkheid nu beschikbaar voor iedereen die volledig onbekend is met programmeertalen, en ook zonder de verbinding met internet te verbreken, d.w.z. online.

In de collectie vindt u vier tools waarmee u snel en eenvoudig een applicatie kunt maken. Alle voorgestelde tools zijn vergelijkbaar met bouwpakketten, je moet je eerste applicatie samenstellen uit verschillende kant-en-klare componenten, je kunt een applicatie maken op dezelfde manier als je een Lego-constructor assembleert.

Alle instrumenten werden geselecteerd op basis van de volgende criteria:

  • Gebruiksgemak. Omdat een dergelijk hulpmiddel voornamelijk zal worden gebruikt door mensen die niet bekend zijn met programmeren en complexe elementen, werd bij deze kleine selectie de nadruk vooral gelegd op het gemak en gebruiksgemak van de voorgestelde hulpmiddelen;
  • Intuïtieve interface. Dit punt en deze voorwaarde volgen logischerwijs uit het vorige. Naast het feit dat de interface van de tool voor het maken van applicaties voor het Android OS (Android) eenvoudig moet zijn, moet deze ook intuïtief zijn;
  • Mogelijkheden. Hoe meer verschillende dingen een tool “kan” doen, hoe beter. In wezen hebben alle gepresenteerde applicaties dezelfde set tools, met kleine verschillen en wijzigingen.

Dus laten we schrijven, laten we beginnen met het maken van de applicatie (de hele applicatie kan online worden gemaakt), hieronder kunt u vertrouwd raken met de selectie van softwareproducten en de handigste en meest functionele tool voor uzelf kiezen.

DeAppBuilder

Een goed hulpmiddel voor het maken van applicaties. Het goede nieuws is ongetwijfeld dat u deze tool helemaal gratis kunt gebruiken. Het nadeel is dat dit softwareproduct de Russische taal niet ondersteunt, maar als je op school tenminste een beetje Engels hebt gestudeerd, dan zouden er geen problemen moeten zijn bij het gebruik van TheAppBuilder. Van alle kenmerken van dit softwareproduct wil ik het volgende opmerken::

  • Grote selectie sjablonen voor het maken van uw Android-applicaties. Als u een eenvoudig programma wilt maken, kunt u uit de voorgestelde sjabloonopties eenvoudig het gewenste programma selecteren;
  • De mogelijkheid om gedetailleerde statistieken te bekijken over de applicatie die u heeft gemaakt;
  • Eenvoudige en duidelijke publicatie van de door u gemaakte applicatie op Google Play.

AppsGeiser


Nog een goed hulpmiddel van hoge kwaliteit dat veel aandacht verdient. Zoals ik hierboven al zei, hoef je om )) niet voor Android te kunnen programmeren; alles in dit programma is zo eenvoudig dat je binnen een paar minuten een applicatie voor je project kunt maken, simpelweg door het uit de onderdelen samen te stellen. van de ‘constructeur’. Hieronder kunt u vertrouwd raken met de mogelijkheden van de voorgestelde tool.:

  • Een groot archief met sjablonen over verschillende onderwerpen: restaurants, pizzeria's, fotostudio's, vakanties, sport, radio, vrachtvervoer en vele, vele andere sjablonen. U hoeft alleen maar de juiste te selecteren en deze te bewerken zodat deze aan uw behoeften voldoet;
  • Ingebouwde tools om uw nieuwe applicatie te promoten. Soms moet u veel moeite en tijd besteden aan het promoten en promoten van uw nieuwe applicatie. Ingebouwde promotietools in de builder kunnen uw taak eenvoudiger maken;
  • De mogelijkheid om uw programma te koppelen aan een advertentienetwerk, zodat u geld kunt verdienen met de applicaties die u maakt.

AppsMakerstore




Een zeer eenvoudige tool voor het maken van programma's voor uw Android-besturingssysteem. Het grote voordeel van deze applicatie is dat je in één keer een applicatie kunt maken voor zes verschillende mobiele besturingssystemen. Andere voordelen van deze tool zijn onder meer::

  • Mogelijkheid om online met de ontwerper te werken;
  • Het is mogelijk om een ​​gratis account te registreren;
  • Een groot archief met sjablonen voor uw Android-applicatie; u kunt met twee klikken de benodigde applicatie schrijven.

Dat is alles voor vandaag. Ik hoop dat je het juiste hulpmiddel voor jezelf hebt gekozen en weet hoe je je eerste aanvraag moet doen. We schrijven ook onze mening in de opmerkingen bij dit materiaal.

In elk bedrijf is het begin het moeilijkste. Het is vaak moeilijk om in de context te komen, en dat is wat ik tegenkwam toen ik besloot mijn eerste Android-applicatie te ontwikkelen. Dit artikel is voor degenen die willen beginnen, maar niet weten waar.

Het artikel behandelt de gehele ontwikkelingscyclus van applicaties. Samen gaan we een eenvoudig Tic-Tac-Toe-spel schrijven met één scherm (in Android OS heet dit Activiteit).

Gebrek aan ervaring met Java-ontwikkeling mag geen obstakel zijn voor het beheersen van Android. De voorbeelden zullen dus geen Java-specifieke constructies gebruiken (of ze zullen zoveel mogelijk worden geminimaliseerd). Als je bijvoorbeeld PHP schrijft en bekend bent met de fundamentele principes van softwareontwikkeling, zal dit artikel voor jou het nuttigst zijn. Omdat ik geen expert ben op het gebied van Java-ontwikkeling, kan er op mijn beurt worden aangenomen dat de broncode niet in aanmerking komt voor het label “best practices voor Java-ontwikkeling”.

Het installeren van de benodigde programma's en hulpprogramma's

Ik zal de benodigde hulpmiddelen opsommen. Er zijn er 3:

  1. IDE met ondersteuning voor Android-ontwikkeling:
    • Eclipse + ADT-plug-in;
    • IntelliJ IDEA Community-editie;
    • Netbeans + nbandroid-plug-in;

De hulpprogramma's worden geïnstalleerd in de hierboven aangegeven volgorde. Het heeft geen zin om alle genoemde IDE's te installeren (tenzij u problemen ondervindt bij het kiezen van de juiste). Ik gebruik IntelliJ IDEA Community Edition, een van de meest geavanceerde IDE's voor Java die momenteel beschikbaar zijn.

Een virtueel apparaat starten

Nadat u AVD Manager hebt gestart en aanvullende pakketten hebt geïnstalleerd (SDK van verschillende versies), kunt u beginnen met het maken van een virtueel apparaat met de nodige parameters. Het begrijpen van de interface zou niet moeilijk moeten zijn.

Apparaatlijst

Een project maken

Ik ga altijd graag aan de slag en minimaliseer voorbereidende activiteiten, waaronder het maken van een project in de IO, vooral als het project educatief is en niet bedoeld is om te worden geproduceerd.

Dus Bestand->Nieuw project:

Door op de F6-knop te drukken, wordt het project samengesteld, gecompileerd en gelanceerd op het virtuele apparaat.

Projectstructuur

De vorige schermafbeelding toont de structuur van het project. Omdat we in dit artikel puur praktische doelen nastreven, zullen we ons alleen concentreren op de mappen die we tijdens het werk zullen gebruiken. Dit zijn de volgende mappen: gen, res En src.

In een map gen er zijn bestanden die automatisch worden gegenereerd wanneer het project wordt gebouwd. U kunt deze niet handmatig wijzigen.

De map res is bedoeld voor het opslaan van bronnen zoals afbeeldingen, teksten (inclusief vertalingen), standaardwaarden, lay-outs.

src- dit is de map waarin het grootste deel van het werk zal plaatsvinden, omdat hier bestanden met de broncode van ons programma worden opgeslagen.

Eerste regels

Zodra de Activiteit (applicatiescherm) is aangemaakt, wordt de methode onCreate() aangeroepen. De IDE vulde het met 2 regels:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
De setContentView-methode (equivalent aan this.setContentView) stelt de XML-indeling voor het huidige scherm in. In wat volgt noemen we XML-lay-outs “lay-out” en schermen “Activiteit”. De lay-out in de applicatie zal als volgt zijn:

TableLayout is ideaal voor deze toepassing. ID kan aan elke resource worden toegewezen. In dit geval wordt aan TableLayout id = main_l toegewezen. Met de methode findViewById() krijgt u toegang tot de weergave:
privé TableLayout-indeling; // dit is een eigenschap van de klasse KrestikinolikiActivity public void onCreate(Bundle SavedInstanceState) (super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField( );

Nu moeten we de buildGameField() -methode implementeren. Om dit te doen, moet u een veld in de vorm van een matrix genereren. Dit wordt gedaan door de klas Game. Eerst moet je een Square-klasse voor de cellen maken en een Player-klasse waarvan de objecten deze cellen zullen vullen.

Vierkant.java

pakket com.voorbeeld; public class Square ( private Player player = null; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (speler != null) ( return true; ) return false; ) public Player getPlayer () (retourspeler; ) )

Speler.java

pakket com.voorbeeld; public class Player ( private String-naam; public Player(String-naam) ( this.name = naam; ) public CharSequence getName() ( return (CharSequence) naam; ) )

Alle klassen van onze applicatie bevinden zich in de src-map.

Game.java

pakket com.voorbeeld; public class Game ( /** * field */ private Square field; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // het veld invullen voor (int i = 0, l = veldlengte;

Initialisatie van het spel in de KrestikinolikiActivity-constructor.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // wordt later geïmplementeerd)

De buildGameField()-methode van de klasse KrestikinolikiActivity. Het voegt dynamisch rijen en kolommen toe aan de tabel (spelveld):
privéknopknoppen = nieuwe knop;
//(...) private void buildGameField() ( Vierkant veld = game.getField(); for (int i = 0, lenI = field.length; i
public class Listener implementeert View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) (Knopknop = (Knop)weergave; ) )
Het blijft nodig om de spellogica te implementeren.
public class Game ( /** * spelers */ privé Speler spelers; /** * veld */ privé Vierkant veld; /** * is het spel begonnen? */ privé boolean gestart; /** * huidige speler */ privé Speler activePlayer; /** * Telt het aantal gevulde cellen */ private int gevuld; /** * Totaal aantal cellen */ private int squareCount; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // het veld invullen voor (int i = 0, l = veldlengte; i

Bepaling van de winnaar

K.O suggereert dat de winnaar bij boter-kaas-en-eieren degene is die X of O op een lijn zet die gelijk is aan de lengte van het veld, verticaal, horizontaal of diagonaal. De eerste gedachte die in je opkomt is om voor elk geval methoden te schrijven. Ik denk dat het Chain of Responsobility-patroon in dit geval goed zou werken. Laten we de interface definiëren
pakket com.voorbeeld; openbare interface WinnerCheckerInterface ( openbare Speler checkWinner(); )
Omdat Game de verantwoordelijkheid heeft om de winnaar te bepalen, implementeert het deze interface. Het is tijd om virtuele "grensrechters" te creëren, die elk zijn kant zullen controleren. Ze implementeren allemaal de WinnerCheckerInterface-interface.

WinnerCheckerHorizontal.java

pakket com.voorbeeld; public class WinnerCheckerHorizontal implementeert WinnerCheckerInterface ( private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = veldlengte;

WinnerCheckerVertical.java

pakket com.voorbeeld; public class WinnerCheckerVertical implementeert WinnerCheckerInterface (privé spelspel; openbaar WinnerCheckerVertical (spelspel) ( this.game = spel; ) public Player checkWinner() ( Vierkant veld = game.getField(); Speler currPlayer; Speler lastPlayer = null; for (int i = 0, len = veldlengte;

WinnerCheckerDiagonalLeft.java

pakket com.voorbeeld; public class WinnerCheckerDiagonalLeft implementeert WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalLeft(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; voor (int i = 0, len = veldlengte; i

WinnerCheckerDiagonalRight.java

pakket com.voorbeeld; public class WinnerCheckerDiagonalRight implementeert WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalRight(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; voor (int i = 0, len = veldlengte; i
Laten we ze initialiseren in de Game-constructor:
//(....) /** * "Rechters" =). Na elke zet controleren ze * of er een winnaar is */ private WinnerCheckerInterface winnaarCheckers;
//(....) public Game() ( //(....) winnaarCheckers = nieuwe WinnerCheckerInterface; winnaarCheckers = nieuwe WinnerCheckerHorizontaal(dit); winnaarCheckers = nieuwe WinnerCheckerVertical(dit); winnaarCheckers = nieuwe WinnerCheckerDiagonalLeft(dit); winnaarCheckers = nieuwe WinnerCheckerDiagonalRight(dit);
Implementatie van checkWinner():
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnaarCheckers) ( Speler winnaar = winChecker.checkWinner(); if (winnaar != null) ( return winnaar; ) ) return null; )
Na elke zet controleren wij de winnaar. Laten we code toevoegen aan de onClick() -methode van de klasse Listener
public void onClick(Bekijk weergave) ( Knop knop = (Knop) weergave; Spel g = spel; Speler speler = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( knop.setText(speler.getName()) ; ) Spelerwinnaar = g.checkWinner(); (winnaar != null) ( gameOver(winnaar); ) if (g.isFieldFilled()) ( // als het veld gevuld is gameOver(); ) )
De gameOver()-methode is geïmplementeerd in 2 varianten:
private void gameOver(Speler speler) ( CharSequence text = "Speler \"" + speler.getName() + "\" gewonnen!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); vernieuwen(); private void gameOver() ( CharSequence text = "Tekenen"; Toast.makeText(dit, tekst, Toast.LENGTH_SHORT).show(); game.reset(); vernieuwen(); )
private void refresh() ( Vierkant veld = game.getField(); for (int i = 0, len = field.length; i

Klaar! Ik hoop dat dit artikel je heeft geholpen om vertrouwd te raken met de wereld van Android-ontwikkeling. Bedankt voor uw aandacht!

Video van de voltooide applicatie

  • Handleiding

Hallo. Vandaag kwam ik op de website van de Linux Foundation een bericht tegen over een programmeercursus voor Android, en daarnaast veel opmerkingen dat ik graag een vertaling van deze lessen zou willen zien. Sinds nu, na vier jaar ontwikkeling voor microcontrollers, ben ik begonnen met het bestuderen van programmeren voor mobiele apparaten, terwijl ik tegelijkertijd besloot het eerste deel van de les te vertalen.

Android-programmering voor beginners. Deel 1
Android-smartphones en -tablets zijn steeds vaker in onze tassen en broekzakken te vinden, en ook het programmeren met Android wordt steeds populairder. Het is een geweldig ontwikkelingsplatform - de API is goed gedocumenteerd en gemakkelijk te gebruiken, en het is gewoon leuk om iets te maken dat je op je smartphone kunt gebruiken. In eerste instantie kunt u het zonder doen door de code te maken en te testen met behulp van een emulator op uw Linux-pc. In de eerste van een tweedelige introductie wordt uitgelegd hoe u een eenvoudige timer-app kunt maken en krijgt u een inleiding tot de Android API. De cursus veronderstelt een basiskennis van Java, XML en programmeertechnologieën, maar je kunt het toch proberen, zelfs als je er een heel vaag begrip van hebt.
Aan de slag en ontwikkelomgeving
Iets over de versies: de nieuwste versie van Android is 4.2 (Jelly Bean), maar zoals je in deze grafiek kunt zien, is deze nog niet wijdverspreid. Het is het beste om te beginnen met ontwikkelen op een van de versies: 4.0 (Ice Cream Sandwich) of 2.3 (Gingerbeard), vooral omdat Android-versies achterwaarts compatibel zijn (dat wil zeggen dat uw code voor versie 2.3 werkt op 4.2) en applicaties die zijn ontwikkeld voor een latere versie zal niet altijd werken op een oudere. De hier getoonde code zou moeten werken op versies 4.0 en 2.3.
De eenvoudigste manier om aan een ontwikkelomgeving te komen is door de Android Bundle te installeren, deze kun je downloaden. Je hebt ook JDK 6 nodig (niet alleen JRE). Vergeet niet dat Android niet compatibel is met gcj. Als u Eclipse of een andere IDE al gebruikt, kunt u proberen deze voor Android in te stellen. Hoe u dit kunt doen, wordt beschreven. Maak nu een project met de naam Countdown met behulp van Eclipse of vanaf de opdrachtregel. Ik heb de instellingen ingesteld op BuildSDK 4.0.3 en minimaal SDK 2.2, en (in Eclipse) de BlankActivity-sjabloon gebruikt.
Mijn eerste project voor Android: interface
Ons eerste programma voor Android wordt een timer die aftelt vanaf 10 seconden na het indrukken van een knop. Voordat we code schrijven, moeten we een interface maken: wat de gebruiker zal zien wanneer hij onze applicatie start. U moet res/layout/activity_countdown.xml openen en een XML-sjabloon maken. Gebruik de Eclipse-editor of een tekst-/XML-editor en voer het volgende in: