The document provides information about Kotlin, including that it is 100% interoperable with Java, was developed by JetBrains, and reached 1.0 release status in 2016. Some key benefits of Kotlin are that it is concise, safe, functional, and can reduce the amount of boilerplate code needed. Kotlin code is also null-safe to avoid null pointer exceptions. It allows Java and Kotlin code to coexist and is an increasingly popular language for Android development.
This talk describes building Silverlight 3 applications using F#. Both Visual Studio 2008 and 2010 RC are demonstrated. This talk was given by Talbott Crowell at the F# User Group meeting on April 4, 2010 at Microsoft, Cambridge, MA.
Talk was given for the first time at JPrime 2017 conference in Sofia, Bulgaria
JUnit is the standard way to test things in Java. In fact, it is the most commonly included external library for Java projects! Here is another fact - JUnit 4 release was 11 years ago and no feature releases were added in recent years. What you knew about JUnit in 2010 is still 100% relevant today. In 2017...
So finally, time for upgrade!
What took 11 years? What is new? What changed and what stayed the same? What about IDE and build tool support? When is the release date? What will testing on the JVM look like in the future? Check the presentation and you will find out.
For more info about JPrime check out jprime.io
JUnit is the standard way to test things in Java. In fact, it is the most commonly included external library for Java projects! Here is another fact - JUnit 4 release was 11 years ago and no feature releases were added in recent years. What you knew about JUnit in 2010 is still 100% relevant today. In 2017...
So finally, time for an upgrade!
What took 11 years? What is new? What changed and what stayed the same? What about IDE and build tool support? What will testing on the JVM look like in the future? Check the presentation and you will find out.
This presentation talks about the Dependency Injection design principle, providing an overview of the pattern and its benefits while showing examples on how to apply it using Autofac, a specific dependency injection tool for .NET development.
Autofac: http://code.google.com/p/autofac/
A book on DI: http://www.manning.com/seemann/
Tests? Who's got time for that? They slow us down.
Test code should be an investment and not a cost. Instead, it is often treated as a mere annoyance and impediment to our progress.
What does a good test code look like? One that will not annoy us and slow us down? One that will help us write, read and understand our code? How can we invest and collect interest from it instead of paying a price?
This is not a theoretical presentation. We will see how we can achieve this by example, using the common tools, libraries, and techniques available for us on the JVM ecosystem
This talk describes building Silverlight 3 applications using F#. Both Visual Studio 2008 and 2010 RC are demonstrated. This talk was given by Talbott Crowell at the F# User Group meeting on April 4, 2010 at Microsoft, Cambridge, MA.
Talk was given for the first time at JPrime 2017 conference in Sofia, Bulgaria
JUnit is the standard way to test things in Java. In fact, it is the most commonly included external library for Java projects! Here is another fact - JUnit 4 release was 11 years ago and no feature releases were added in recent years. What you knew about JUnit in 2010 is still 100% relevant today. In 2017...
So finally, time for upgrade!
What took 11 years? What is new? What changed and what stayed the same? What about IDE and build tool support? When is the release date? What will testing on the JVM look like in the future? Check the presentation and you will find out.
For more info about JPrime check out jprime.io
JUnit is the standard way to test things in Java. In fact, it is the most commonly included external library for Java projects! Here is another fact - JUnit 4 release was 11 years ago and no feature releases were added in recent years. What you knew about JUnit in 2010 is still 100% relevant today. In 2017...
So finally, time for an upgrade!
What took 11 years? What is new? What changed and what stayed the same? What about IDE and build tool support? What will testing on the JVM look like in the future? Check the presentation and you will find out.
This presentation talks about the Dependency Injection design principle, providing an overview of the pattern and its benefits while showing examples on how to apply it using Autofac, a specific dependency injection tool for .NET development.
Autofac: http://code.google.com/p/autofac/
A book on DI: http://www.manning.com/seemann/
Tests? Who's got time for that? They slow us down.
Test code should be an investment and not a cost. Instead, it is often treated as a mere annoyance and impediment to our progress.
What does a good test code look like? One that will not annoy us and slow us down? One that will help us write, read and understand our code? How can we invest and collect interest from it instead of paying a price?
This is not a theoretical presentation. We will see how we can achieve this by example, using the common tools, libraries, and techniques available for us on the JVM ecosystem
It is not uncommon for Notes client developers to feel intimidated by the wide range of technologies available when modernizing an existing portfolio of applications with XPages. In this 2-hour workshop we will provide a series of 20-minute introductions to many of these new and emerging technologies. Learn about Java, Beans, REST Services, Bootstrap, Mobile Controls, data visualization and a whole lot more.
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Eugene Kurko
f you want to share the code between Android and iOS but you don't feel like doing C++/JNI, React Native, Flutter, you must try Kotlin/Native! In this presentation we will see how Kotlin/Native is different and in some aspects superior, and how easy it becomes to develop, debug and maintain a common codebase with JetBrains tools and without sacrificing runtime performance.
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019UA Mobile
If you want to share the code between Android and iOS but you don't feel like doing C++/JNI, React Native, Flutter, you must try Kotlin/Native! In this presentation we will see how Kotlin/Native is different and in some aspects superior, and how easy it becomes to develop, debug and maintain a common codebase with JetBrains tools and without sacrificing runtime performance.
Microsoft Visual Studio 2017 is being launched on March 7. This is the 20th anniversary of Visual Studio! We will host a launch event on April 20th that will focus on some of the new features of Visual Studio 2017 and Mobile development with Xamarin for Visual Studio.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
It is not uncommon for Notes client developers to feel intimidated by the wide range of technologies available when modernizing an existing portfolio of applications with XPages. In this 2-hour workshop we will provide a series of 20-minute introductions to many of these new and emerging technologies. Learn about Java, Beans, REST Services, Bootstrap, Mobile Controls, data visualization and a whole lot more.
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Eugene Kurko
f you want to share the code between Android and iOS but you don't feel like doing C++/JNI, React Native, Flutter, you must try Kotlin/Native! In this presentation we will see how Kotlin/Native is different and in some aspects superior, and how easy it becomes to develop, debug and maintain a common codebase with JetBrains tools and without sacrificing runtime performance.
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019UA Mobile
If you want to share the code between Android and iOS but you don't feel like doing C++/JNI, React Native, Flutter, you must try Kotlin/Native! In this presentation we will see how Kotlin/Native is different and in some aspects superior, and how easy it becomes to develop, debug and maintain a common codebase with JetBrains tools and without sacrificing runtime performance.
Microsoft Visual Studio 2017 is being launched on March 7. This is the 20th anniversary of Visual Studio! We will host a launch event on April 20th that will focus on some of the new features of Visual Studio 2017 and Mobile development with Xamarin for Visual Studio.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
3. 3
HISTORY
2010 – Work Started
2011 – Announced
2016 – 1.0 Released
2017 – 1.1 Released
In Google I/O 2017 they announced that First-class support for Kotlin.
Android Studio 3.0 is released and Kotlin is by default supported. No other
setup required.
Kotlin is a growing community and it is also acknowledged by Google.
4. 4
Null references are controlled by the system.(NPE)
No raw types.
Kotlin does not have checked Exceptions.
Requires more code to do simple tasks.
Not that friendly with android.
Inability to add methods in platform APIs, have to use Utils for that.
For Android ,it’s nullability everywhere
5. 5
WHY KOTLIN?
Kotlin & Java
can exist
together in one
project. You
can keep on
utilizing
existing
libraries in
Java
Concise Safe It's functional
Kotlin & Java
can exist
together in one
project. You
can keep on
utilizing
existing
libraries in
Java
Definitely
reduce the
measure of
standard code
you have to
compose
Avoid entire
classes of
errors such as
null pointer
exceptions
Kotlin utilizes
numerous
ideas from
functional
programming,
for example,
lambda
expressions
100% interoperable with Java
Source: google.com
6. 6
KEY BENEFITS OF ADOPTING KOTLIN
Open
Source
Kotlin Offers
Shortness
Mature
Language
With a Great
IDE Support
Provides an Easier
Way to Develop
AndroidApps
Swift Language
forAndroidApp
Development
Reliable Due
to its
Evolutionary
Process
Much Safer
Than Java
Easy to
Learn
Runs on
JVM
Combines
OO and
Functional
Programin
g
Saves30 - 40%
lines of code
Source: google.com
7. 7
Declaring a variable
var - Mutable variable
val – Immutable or final viable
Example:
val name:String=“Pocket Office”// immutable or final
var name:String=“Pocket Office” // mutable
Ex. name=“NCR”
val name=“Pocket Office” // Types are auto-inferred
val num:Int=10// immediate assignment
var personList:List<String>()=ArrayList()
Statically Type
In java : final String name=“Pocket Office”;
In Kotlin: val name=“Pocket Office”
Double
Float
Long
Int
Short
Boolean
Char
String
Array
Basic Data Types
8. 8
Saving time with Kotlin
#1. Static Layout Import
One of the most common boilerplate codes in Android is using the findViewById() function to obtain references to your views in
Activities or Fragments.
For example,
consider the following activity XML layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="co.ikust.kotlintest.MainActivity">
<TextView android:id="@+id/helloWorldTextView“ android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
Import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
helloWorldTextView.text = "Hello World!"
} }
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv=findViewById(R.id.helloWorldTextView);
tv.setText(“Hello World!”);
}
}
9. 9
#2 Writing POJO Classes with Kotlin
public class User {
private String firstName;
private String lastName;
Sting fullname
Stign address
public String
getFirstName() {
return firstName;
}
public void
setFirstName(String
firstName) {
this.firstName =
firstName;
}
public String
getLastName() {
return lastName;
}
public void
setLastName(String
class User {
var firstName: String? = null
Var aadress:String?
var lastName: String? = null
}
Custom accessors can be written, for example:
class User {
var firstName: String? = null
var lastName: String? = null
val fullName: String? get() firstName + " " + lastName }
This saves lots of lines of code
10. 10
#3 Class Inheritance and Constructors
Kotlin classes have a primary constructor and one or more secondary constructors.
An example of defining a primary constructor:
class User constructor (firstName: String, lastName: String){ }
class User(val firstName: String, val lastName: String) {
constructor(firstName: String) : this(firstName, "")
{ //... }
}
Secondary constructor
Inheritance
In Kotlin, all classes extend from Any, which is similar to Object in Java. By default, classes are
closed, like final classes in Java. So, in order to extend a class, it has to be declared as open or
abstract:
open class User(val firstName, val lastName) class Administrator(val firstName, val lastName)
: User(firstName, lastName)
11. 11
#4 Lambda Expressions
fun add(x: Int, y: Int = 1) : Int
{
return x + y;
}
int add(int x)
{
return add(x, 1);
}
int add(int x, int y)
{
return x + y;
} Using Lambda Expressions
view.setOnClickListener(
{ view -> toast("Click")
})
view.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Clicked on view",
Toast.LENGTH_SHORT).show();
}
};
12. 12
#5 Null Safety
No more Null Pointer Exceptions
Kotlin’s type system is aimed to eliminate this forever.
//Null Safety
var a: String = "abc"
a = null // compilation error
var b: String? = "abc"
b = null // ok
// what about this ?
val l = a.length // Promise no NPE crash
val l = b.length // error: b can be null
13. 13
#6 Extensions and Smart Cast
public static boolean isTuesday(Date
date) {
return date.getDay() == 2;
}
boolean tuesdayBool =
DateUtils.isTuesday(date);
fun Date.isTuesday(): Boolean {
return getDay() ==2
}
val dateToCheck = Date()
println(date.isTuesday())
Extensions
Smart Cast
if (obj instanceOf MyType) {
((MyType)obj).getXValue();
} else {
// Oh no do more
}
if (obj is MyType) {
obj.getXValue()
} else {
// Oh no do more
}
14. 14
… and More
• Visibility Modifiers
• Companion Objects
• Nested, Sealed Classes
• Generics
• Coroutines
• Operator overloading
• Exceptions
• Annotations
• Reflection
• and more
… and Even More
• Infix extension methods
• Interfaces
• Interface Delegation
• Property Delegation
• Destructuring
• Safe Singletons
• Init blocks
• Enums
• Multiline Strings
• Tail recursion
source http://kotlinlang.org/
15. 15
NUMBER OF ANDROID APPS IN KOTLIN
2018 2019
Stats from Jetbrains.com
(Projection)
16. 16
For more information…
• https://developer.android.com/kotlin/
• https://www.jetbrains.com/opensource/kotlin/
• https://discuss.kotlinlang.org/
• https://kotlinlang.org/docs/reference/android-overview.html
Source https://developer.android.com/kotlin/
17. FURTHER SUPPORT AND INTEGRATIONS
FOR KOTLIN
• start.spring.io
• Kotlin Compiler Plugin
• Kotlin Support in Spring 5.0
• Kotlin Gradle DSL
• @TestInstance(
Lifecycle.PER_CLASS)
• Kotlin Android Extensions
Lambda expressions, introduced with Java 8, are one its favorite features. However, things are not so bright on Android, as it still only supports Java 7, and looks like Java 8 won’t be supported anytime soon. So, workarounds, such as Retrolambda, bring lambda expressions to Android.
With Kotlin, no additional libraries or workarounds are required.
The return value of the function can be omitted, and in that case, the function will return Int. It’s worth repeating that everything in Kotlin is an object, extended from Any, and there are no primitive types
Extenstion function aswell to extend the functionality.
Nullability
• In Java, the NullPointerException is one of the biggest headache’s
• Kotlin , ‘null’ is part of the type system
• We can explicitly declare a property , with nullable value
• For each function, we can declare whether it returns a nullable
value